Ответ
Я активно использую Git в ежедневной работе, преимущественно через командную строку. Мой опыт включает:
- Стандартный workflow: создание feature-веток, коммиты, push, создание pull/merge request'ов и участие в код-ревью на платформах типа GitLab или GitHub.
- Решение сложных ситуаций: разрешение конфликтов слияния, интерактивный rebase (
git rebase -i) для "причесывания" истории,git cherry-pickдля переноса отдельных коммитов. - Инструменты для анализа:
git log --graph --oneline,git diff,git bisectдля поиска регрессий.
Пример типичного рабочего процесса для новой функциональности:
# Создание и переход на новую ветку
$ git checkout -b feature/optimize-rendering
# Внесение изменений, затем их индексация и коммит
$ git add src/renderer/
$ git commit -m "perf: replace std::list with std::vector in render queue"
# Синхронизация с основной веткой и отправка
$ git pull origin main --rebase
$ git push origin feature/optimize-rendering
Я также настраивал .gitignore для C++ проектов (исключая бинарные файлы, папки сборки вроде build/, CMakeCache.txt) и работал с git hooks для автоматического форматирования кода (clang-format) перед коммитом.