foundation
Ветка
Используйте ветки как подвижные имена над коммитами для изолированной работы, review, релиза и экспериментов.
Ветка — подвижная ссылка (указатель) на коммит, а не копия файлов. Создание `feature/login` — одно обновление ref; граф коммитов общий.
git switch -c feature/login
git branch -vv # локальные ветки + upstream tracking
git fetch origin # только remote-tracking refs
Ветки дают параллельную работу, но цена интеграции растёт с расхождением. Remote-tracking ветки (`origin/main`) отражают состояние на последнем fetch — не обязательно то, что коллеги только что запушили.
На интервью: указатели веток, remote-tracking refs, политика mainline и почему короткоживущие ветки снижают риск интеграции.
Типовые ошибки: долгоживущие ветки со скрытыми конфликтами и дрейфом дизайна; локальный `main` «как на сервере» без fetch; соглашения об именах вместо мелких изменений и CI.
Компромисс — изоляция (feature branches) против частой интеграции (trunk-based); политика под cadence релизов и зрелость тестов.
Чеклист:
- Ветки — refs на коммиты, не копии файлов.
- Fetch перед суждениями о shared state.
- Частая интеграция для активной работы.
- Default branch защищён и deployable.