Git: система контроля версий для разработчиков и AI
Ключевые тезисы
- Git — это система «сохранений» для проектов, которая запоминает состояние всех файлов в любой момент времени.
- Позволяет безопасно вносить изменения, экспериментировать и откатывать ошибки.
- Критически важен для работы с AI-агентами, чтобы контролировать их изменения и не терять код.
- Основной рабочий цикл: создать ветку → внести изменения → проверить → сохранить (коммит) → отправить на проверку (PR) → влить в основную версию.
Базовые концепции: коммит и репозиторий
Коммит — это снимок всего проекта в определённый момент времени с короткой пояснительной подписью. Цепочка коммитов образует историю изменений, к любой точке которой можно вернуться.
Три базовые команды:
git status— показывает изменённые файлы.git add .— добавляет все изменения в «коробку» для следующего коммита.git commit -m "описание"— создаёт коммит (сохранение). Описание должно быть понятным для человека.
GitHub, Git и gh: в чём разница?
- Git — программа на компьютере, которая управляет историей версий локально.
- GitHub — облачный сервис (как Google Drive) для хранения и совместной работы над git-репозиториями.
- gh — CLI-инструмент (пульт) для работы с GitHub прямо из терминала. Им умеют пользоваться AI-агенты.
Основные команды для синхронизации: git push (отправить коммиты в облако), git pull (забрать изменения из облака).
Ветки и рабочий процесс
В проектах обычно есть две главные ветки:
- Production (main/master/prod) — то, что видят живые пользователи. Ломать нельзя.
- Develop (staging/test) — тестовая версия для команды. Сюда попадают все нововведения.
Правильный путь любой фичи:
- Создать от
developсвою ветку под задачу:git switch -c feature-dark-theme. - Вести разработку в этой ветке.
- Через Pull Request (PR) запросить вливание изменений в
develop. - После проверки и тестов — влить (merge) в
develop. - Через аналогичный PR из
developвлить изменения вproduction(релиз).
Pull Request (PR) — запрос на вливание изменений. На странице PR видна разница кода (добавлено зелёным, удалено красным), идут обсуждения и автоматические проверки.
Практика в разных контекстах
- Личный проект: Можно обойтись веткой
mainи ветками для задач. Полезно настроить GitHub Actions для автоматического запуска тестов и сборки при каждомpush. Это экономит токены AI-агентов. - Стартап: Используется полная схема с
developиproduction. PR перед вливанием просматривает хотя бы один человек. Иногда вproductionпушат напрямую («горит»), что рискованно. - Крупная компания:
productionзаблокирован для прямых пушей. PR проходит конвейер проверок: автотесты, безопасность, AI-ревью, одобрение одним-двумя людьми. В случае ошибки вproductionделаютgit revert(новый коммит, отменяющий плохой), а не стирают историю.
Ключевые правила для работы с AI
- Коммит перед каждым большим запросом — это «сохранение перед боссом». В случае неудачи можно откатиться:
git restore . - Нейронка не помнит, а git помнит. Любой код, попавший в коммит, можно восстановить из истории (
git log). - Всегда смотри
git diffперед коммитом. AI любит «заодно» изменить то, о чём его не просили. - Секреты (ключи, пароли) никогда не хранить в git. Файлы типа
.envнужно добавлять в.gitignore.
Работа с несколькими AI-агентами
Несколько агентов в одной папке — путь к хаосу. Решение — git worktree.
git worktree — создаёт дополнительную рабочую папку проекта с общей историей, но изолированными файлами и веткой.
Рабочий процесс:
- Для каждой задачи создаётся отдельная папка (worktree) со своей веткой:
git worktree add ../dark-theme feature-dark-theme. - Каждый агент работает в своей «комнате», не мешая другим.
- Агенты пушат свои ветки и создают PR в
develop. - После завершения задачи папка удаляется:
git worktree remove. Ветка и коммиты остаются в истории. - Если два агента изменили одно место, git покажет конфликт при слиянии, который нужно разрешить вручную или поручить агенту.
Главное правило: одна задача = одна ветка = одна папка (worktree).
Выводы
- Git — фундаментальный инструмент для современной разработки, особенно в эпоху AI.
- Он обеспечивает контроль, безопасность и возможность отката любых изменений.
- Стандартный цикл:
git pull→ создать ветку → работа с AI →git diff→git commit→git push→ создать PR → дождаться зелёной проверки → влить изменения. - Настройка автоматических проверок (GitHub Actions) и изолированных рабочих окружений (git worktree) значительно повышает эффективность и надёжность работы с AI-агентами.