Общая ветка в Git
Схема общей ветки опирается
на один удаленный репозиторий,
который видят все участники.
Главная ветка - обычно main -
и есть общее рабочее место:
сюда попадают коммиты каждого,
когда он выполняет push.
Отдельная ветка под задачу
в этой схеме не обязательна.
Можно клонировать репозиторий,
переключиться на main,
править файлы, коммитить
и отправлять изменения на сервер.
Договор простой: главная ветка
на удаленном репозитории -
единственный источник правды для команды.
Такой порядок легко представить
и новичку: нет лишних имен веток,
история лежит в одной линии.
Но как только двое работают
в один день, их коммиты
переплетаются в main.
Каждый должен регулярно
подтягивать чужие изменения,
иначе локальная копия устареет.
Два человека легко сталкиваются в одной ветке: оба правят одни и те же строки или оба пытаются отправить push, когда сервер уже принял чужой коммит. Git не запрещает схему, но и не снимает с команды необходимость договариваться, кто что коммитит и как часто синхронизируется с remote.
Общая ветка хорошо работает,
когда участников мало,
задачи идут по очереди
и незаконченное в main
команда сознательно терпит.
Как только параллельной работы
становится больше, те же приемы
начинают стоить дороже:
чаще нужен pull перед push
и чаще всплывают конфликты
именно на главной.