Работали ли вы с Git?

«Работали ли вы с Git?» — вопрос из категории DevOps и инфраструктура, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, Git — это основной инструмент контроля версий во всех моих проектах. Я использую его ежедневно для командной разработки и управления кодом.

Мой рабочий процесс и опыт:

  • Ветвление: Работаю по модели Git Flow или упрощенной модели с main, develop и feature-ветками. Создаю ветки для новых задач, исправлений (hotfix) и релизов.
  • Коммиты: Стараюсь делать атомарные коммиты с четкими сообщениями в формате Conventional Commits (feat:, fix:, docs:).
  • Слияние: Чаще использую git merge --no-ff для сохранения истории, но для линейной истории применяю git rebase с последующим --force-push в feature-ветку (перед мерж-реквестом).
  • Разрешение конфликтов: Регулярно сталкиваюсь и решаю конфликты слияния вручную, предварительно обновляя свою ветку через git pull origin main.
  • Продвинутые практики: Использовал git stash для временного сохранения изменений, git cherry-pick для переноса отдельных коммитов, git bisect для поиска коммита, внесшего баг, и git hooks для автоматизации (например, проверки линтером).

Пример типичной последовательности для задачи:

git checkout -b feature/add-login
git add .
git commit -m "feat(auth): add basic login form"
git push origin feature/add-login
# После code review:
git checkout main
git pull origin main
git merge --no-ff feature/add-login
git push origin main