Зачем нужны ветки?

Рейтинг: 4Ответов: 2Опубликовано: 11.09.2014

Зачем нужны ветки в git?

Можно ли обойтись без них?

Как я могу их использовать?

Ответы

▲ 3Принят

1 - Классическая модель репы:

master - последний стабильный релиз ; dev - текущая ветка разработки;
dev-xxx - отпочковавшаяся ветка разработки, связанная с планируемым в далеком будущем релизом.

2 - Классическая работа в командной репе:

слил обновления - отпочковал ветку - работаешь в ней - доделал - снова слил обновления в оригинальную ветку - слил ветки - запустил в общую репу.

3 - Т.н. git-flow - каждый багфикс и фича оформляются в отдельную ветку, после конца работы происходит слияние с dev-веткой, в остальном работа как в пункте 1, плюс-минус тонкости отпочковывания хотфиксов и их мержей. Ссылка раз, ссылка два.

▲ 5

При помощи веток в VCS можно:

  • Реализовать фичу, не мешая остальным.
  • Проводить модерацию (кодревью) нового кода перед непосредственным добавлением в кодовую базу.
  • Отвлечься от реализации фичи и починить баг в другом месте.
  • Вовсе отложить начатую фичу до лучших времен.
  • Получить запрос на доработку старой версии программы от заказчика и поддерживать далее несколько версий ПО.
  • Поэкспериментировать с кодом без страха сломать билд.
  • Организовать процесс поэтапного выпуска программы (разработка - тестирование - релиз), не блокируя разработку следующей версии.
  • Организовать работу с open source сообществом или подрядчиком.
  • Запилить постоянную автоматическую сборку с рабочей ветки с прогоном тестов и ручную авторизованную сборку релиза с релиз-ветки.

В случае с гитом сама распределенная работа неразрывно связана с понятием локальных и удаленных веток и синхронизацией коммитов между ними.