Задать вопрос
@GSimonX37

Какие ветки необходимо хранить на удаленном сервере?

Передо мной стоит задача организовать совместную работу над программным обеспечением. В качестве распределённой системы управления версиями был выбран git, и GitHub для удаленного хранения проекта. В качестве рабочего процесса выбран Gitflow.

Первый вопрос: какие ветки (ветка) должны хранится на удаленном сервере (разумеется, кроме главной ветки)? Мое предположение только ветка develop.

Второй вопрос: есть примеры репозиториев, где помимо главной ветки хранятся ветки, у которых в качестве названия – версия (2.3.X):
- scikit-learn;
- pandas.
Что это за ветки, применительно к Gitflow, или это какой-то другой рабочий процесс? Не логичнее было бы хранить одну ветку с последней версией?
  • Вопрос задан
  • 149 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 2
@shushara4241
Первый вопрос: git - распределенная система контроля версий, предполагающая, что все ветки будут синхронизироваться с остальными участниками. Поэтому бояться хранить в удаленном репозитории какие-то "не те" ветки не стоит, единственное, что нужно обговаривать условия именований (например feature - ветки можно именовать по шаблону feature/{task_id}). Кроме того git flow предполагает наличие feature - веток, release, hotfix etc. поэтому ограничиваться в этом плане не стоит.
Второй вопрос: это ветки, в которых идет доработка предыдущих релизов. Например, если в версии 3.2.2 нашелся баг, то чтобы пользователи с версией 2.5.5 получили это исправление тоже, коммит с исправлением попадает и в ветку 3.2.х (и выпускается релиз версии 3.2.3) и в ветку 2.5.х (и выпускается релиз версии 2.5.6). Это опционально, кому-то просто удобно разрабатывать так, но вы можете выбрать то, как удобнее именно вам и вашей команде
Ответ написан
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Если проект небольшой, то Gitflow вам, скорее всего, не нужен. Достаточно одной главной ветки (main), куда изменения вносятся через pull request. Для каждой задачи создаёте короткие ветки (например, feature/task-name), работаете в них и после завершения слияния с main удаляете. Саму ветку main закрывайте от прямых изменений. Никто не должен коммитить напрямую в main.

Что касается веток на сервере: храним как минимум те ветки, с которыми совместно работаем. Иначе как коллеги их получат к себе? Это могут быть главная ветка, стабильные версии или временные ветки задач, если нужно поделиться ими с коллегами. Всё остальное — локально.

Ветки с номерами версий (например, 2.3.X) используются в крупных проектах для поддержки старых релизов и выпуска патчей. Если у вас нет таких требований, можно обойтись одной актуальной веткой.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Заливаются все ветки. Смотреть примеры каких то публичных реп смысла нет - потому что есть права доступа к веткам - вам видно то что разрешили.
Иначе не заливая как вы обеспечите например кодревью или мердж-реквесты?
Бывает что ветки после МР-ов удаляются - да, но далеко не всегда.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы