Найдовше гілка за замовчуванням у більшості репозиторіїв Git називалася "master". На щастя, багато людей усвідомили, що цю термінологію (ще більш очевидну в словах «пан/раб») слід замінити! Технологічна індустрія повинна перейти до більш інклюзивної, відкритої культури, і відмова від формулювань на кшталт «пан/раб» є важливим кроком на цьому шляху.
У публічній дискусії з'явилося кілька різних альтернатив «master», деякі з яких є «default» і «primary». Але найпопулярнішим терміном здається «основний».
Ця коротка стаття допоможе вам перейменувати "master" у ваших власних репозиторіях Git на "main" (або будь-який інший термін, який вибрала ваша команда).
Шпаргалка Git Не
потрібно запам'ятовувати всі ці команди та параметри: отримайте нашу популярну "Git Шпаргалку" - безкоштовно!
Перейменування гілки Local master на main
Першим кроком є перейменування гілки "master" у ваших локальних репозиторіях Git:
$ git branch -m master main
Давайте швидко перевіримо, чи це спрацювало так, як очікувалося:
$ git status
On branch main
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
Поки що все добре! Локальну гілку було перейменовано, але тепер нам потрібно внести деякі зміни і у віддалений репозиторій!
Перейменування гілки Remote master
На другому кроці, нам доведеться створити нову гілку на віддаленому сховищі з назвою "main" - оскільки Git не дозволяє просто "перейменувати" віддалену гілку. Замість цього, нам доведеться створити нову "головну" гілку, а потім видалити стару гілку "master".
Переконайтеся, що ваша поточна локальна гілка HEAD все ще є "main", виконуючи наступну команду:
$ git push -u origin main
Тепер у нас є нова гілка на віддаленому сховищі з назвою "main". Давайте продовжимо і видалимо стару гілку "master" на пульті дистанційного керування:
$ git push origin --delete master
Залежно від ваших точних налаштувань, це могло спрацювати, і перейменування пройшло успішно. У багатьох випадках, однак, ви побачите повідомлення про помилку на кшталт наступного:
To https://github.com/gittower/git-crashcourse.git
! [remote rejected] master (refusing to delete the current branch: refs/heads/master)
error: failed to push some refs to 'https://[email protected]/gittower/git-crashcourse.git'
GitHub, як і інші платформи хостингу коду, також очікує, що ви визначите гілку за замовчуванням - і видалення цього не допускається. Крім того, ваш старий "master" може бути встановлено як "захищений". Вам потрібно буде вирішити цю проблему, перш ніж ви зможете продовжувати. Ось як це зробити в GitHub:Якщо ви спробуєте ще раз зараз, видалення "master" з віддаленого репозиторію має бути успішним:
$ git push origin --delete master
To https://github.com/gittower/git-crashcourse.git
- [deleted] master
Порада Перейменування
"master" на "main" у Tower
Якщо ви використовуєте Git-клієнт Tower, ви можете дуже легко перейменувати гілки:
Після створення нової "головної" гілки на віддаленому сховищі, вам, можливо, доведеться (залежно від вашої платформи хостингу Git) змінити гілку "default" або вилучити будь-який "захищений" статус для "master". Після цього ви зможете видалити стару гілку "master" на пульті дистанційного керування.
Що мають робити
ваші товариші по командіЯкщо інші люди у вашій команді мають локальних клонів репозиторію, їм також доведеться виконати деякі кроки зі свого боку:Якщо ви використовуєте клієнт Tower Git, ваші колеги можуть просто перейменувати свою локальну гілку "master", а потім змінити з'єднання відстеження в контекстному меню:
# Switch to the "master" branch:
$ git checkout master
# Rename it to "main":
$ git branch -m master main
# Get the latest commits (and branches!) from the remote:
$ git fetch
# Remove the existing tracking connection with "origin/master":
$ git branch --unset-upstream
# Create a new tracking connection with the new "origin/main" branch:
$ git branch -u origin/main
Речі, про які слід пам'ятати
Як ви бачили, Процес перейменування "master" на "main" не дуже складний.
Однак слід пам'ятати про ваш набір інструментів: якщо ви використовуєте інструмент CI/CD, GitHub Actions, Azure DevOps / Atlassian Bamboo / GitLab CI pipelines або щось подібне, вам слід ретельно перевірити ці інструменти. Якщо вони залежать від конкретної гілки origin/master, вам, можливо, доведеться змінити їхні параметри.
Дізнатися більше
- Частіші запитання про Git та контроль версій