Расскажи разработчикам, как нужно работать с репозиториями

«Расскажи разработчикам, как нужно работать с репозиториями» — вопрос из категории Git, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Как DevOps, я вижу, что стабильная работа команды начинается с дисциплины в Git. Вот практики, которые мы внедрили и которые реально работают:

1. Ветвление (Мы используем Trunk-Based Development с короткоживущими feature-ветками):

# Создаем ветку для задачи от актуального main
$ git checkout -b feature/JIRA-123-add-login

2. Атомарные коммиты с понятными сообщениями (Conventional Commits):

# Хорошо
$ git commit -m "feat(auth): implement OAuth2 login via Google"
$ git commit -m "fix(api): handle 502 errors from upstream service"

# Плохо
$ git commit -m "fix"

3. Интеграция с CI/CD: Каждый пулл-реквест (PR) автоматически запускает пайплайн (линтеры, unit-тесты, сборка). Мерж в main блокируется, пока пайплайн не будет «зеленым» и не будет проведено code review.

4. Регулярный rebase на main, чтобы избежать «адского» мержа:

$ git fetch origin
$ git rebase origin/main

5. .gitignore — обязателен. Мы используем общий шаблон для проекта, чтобы не коммитить бинарники, локальные настройки IDE (/.idea/), зависимости (/vendor/, node_modules/).

6. Теги для релизов — это точка входа для CD. Создание тега автоматически запускает пайплайн деплоя в production.

$ git tag -a v1.5.2 -m "Release version 1.5.2"
$ git push origin v1.5.2

Главный принцип: main-ветка должна всегда находиться в деплоябельном состоянии. Это основа для надежного CI/CD.