Git: как переименовать ветку локально и на сервере
Чтобы переименовать ветку, на которой вы находитесь, выполните git branch -m новое-имя. Для любой другой ветки укажите оба имени: git branch -m старое новое. На сервере ветку переименовать нельзя, поэтому её создают заново и удаляют старую.
Переименовать локальную ветку
git branch -m feature/new-name # текущая ветка
git branch -m feature/old-name feature/new-name # любая другая ветка
git branch --list # проверить результатКоммиты при этом не меняются, git только переименовывает ссылку.
Переименовать ветку на сервере
Выполните три команды: отправьте ветку под новым именем, привяжите её к серверной и удалите старую.
git push -u origin feature/new-name # создать новую ветку на сервере и привязать к ней локальную
git push origin --delete feature/old-name # удалить старую ветку на сервереПереименовать master в main
git branch -m master main
git push -u origin main
git remote set-head origin main # обновить ссылку origin/HEAD у себяПосле этого смените ветку по умолчанию в настройках репозитория на GitHub, GitLab или Gitea и только потом удаляйте master: сервис не позволит удалить ветку по умолчанию.
git push origin --delete masterЧто сделать коллегам
Коллеги получают новую ветку через fetch, а свою локальную переименовывают и перепривязывают:
git fetch --prune
git branch -m master main
git branch -u origin/main main
git remote set-head origin -aЧастые вопросы
Можно ли переименовать ветку, не удаляя старую на сервере?
Можно, но тогда на сервере будут две одинаковые ветки под разными именами. Обычно старую удаляют, чтобы не путать команду.
Как проверить, к какой удалённой ветке привязана локальная?
Выполните git branch -vv: в квадратных скобках будет указана связанная ветка, например [origin/main].