Основная ветка master

Оригинальное название: master branch

Коротко

Традиционное имя основной ветки Git-репозитория. Для новых проектов GitHub и GitLab по умолчанию создают ветку main, но master по-прежнему встречается повсеместно.

Что такое «Основная ветка master»

Основная ветка — та, в которой лежит актуальная стабильная версия кода: с неё собирают релизы, её выкладывают на боевой сайт, в неё вливают проверенные ветки задач. Без дополнительной настройки Git создаёт её под именем master (переход на main в самом Git запланирован на версию 3.0), и оно стало привычным во всех учебниках и инструкциях.

В 2020–2021 годах GitHub и GitLab сменили имя по умолчанию для новых репозиториев на main, а в Git появилась настройка init.defaultBranch, позволяющая выбрать имя самому. Старые проекты массово переименовывать не стали, поэтому сегодня встречаются оба варианта, а в документации часто пишут «основная ветка» без привязки к имени.

Технически ничем не особенная

Для Git master — обычная ветка, как любая другая. Особый статус ей придаёт договорённость команды и настройки платформы: какая ветка открывается по умолчанию, в какую нацелены запросы на слияние, какую копирует git clone. Поэтому имя можно поменять без потери истории.

Как переименовать master в main

git config --global init.defaultBranch main   # для будущих репозиториев
git branch -m master main                     # переименовать локально
git push -u origin main                       # отправить под новым именем
git push origin --delete master               # удалить старую на сервере

Перед последней командой в настройках платформы нужно сделать main веткой по умолчанию, иначе сервер не даст удалить master. Коллегам после этого достаточно выполнить git fetch, переименовать свою локальную ветку той же командой git branch -m и связать её с origin/main. Перед удалением старой ветки стоит проверить скрипты выкладки и CI/CD: если там прописано имя master, выкладка перестанет срабатывать.

Защита основной ветки

Раз основная ветка соответствует рабочей версии, на платформе её обычно защищают: запрещают прямую отправку и принудительную перезапись, требуют проверку кода и успешные тесты перед слиянием. Это страхует от ситуации, когда незаконченная правка попадает на боевой сайт простым git push с чужого ноутбука.

Обновлено:

Все термины раздела «Git»

Что будем искать? Например,Продвижение