• Час читання ~3 хв
  • 13.10.2023

Найдовше гілка за замовчуванням у більшості репозиторіїв 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, вам, можливо, доведеться змінити їхні параметри.

Дізнатися більше

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297