Расскажите про опыт работы с Git.

«Расскажите про опыт работы с Git.» — вопрос из категории DevOps, который задают на 30% собеседований C/C++ Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Я активно использую 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) перед коммитом.