Menu
Coddy logo textTech

Git: Переименование ветки

Последнее обновление

Вы переименовываете ветку с помощью git branch -m (-m означает "move", переместить). С одним аргументом он переименовывает ветку, на которой вы находитесь; с двумя - переименовывает любую ветку по имени. Переименование чисто локально: если ветка уже была отправлена, вы также удаляете старое имя в удалённом репозитории и отправляете новое.

Попробуйте это в терминальном playground - настоящая оболочка в вашем браузере, ничего не нужно устанавливать.

git branch -m переносит имя ветки: те же коммиты, новая метка.

Синтаксис

CommandWhat it does
git branch -m new-nameПереименовывает ветку, на которой вы сейчас находитесь
git branch -m old-name new-nameПереименовывает другую ветку по имени
git branch -M new-nameПринудительно переименовывает (перезаписывает существующее имя)

Переименование ветки, находящейся в удалённом репозитории

Переименование локально, поэтому уже отправленная ветка требует трёх дополнительных шагов.

StepCommandResult
1git branch -m old newПереименовывает ветку локально
2git push origin --delete oldУдаляет старое имя в удалённом репозитории
3git push -u origin newОтправляет новое имя и задаёт upstream

Часто задаваемые вопросы о переименовании ветки Git

Как переименовать ветку, на которой я сейчас нахожусь?
Выполните git branch -m new-name, указав только новое имя. Git переименовывает текущую ветку на месте - вы остаётесь на ней, а ваши коммиты и история остаются нетронутыми.
Как переименовать ветку, не переключаясь на неё?
Передайте оба имени: git branch -m old-name new-name. Это переименует old-name в new-name, даже если вы сейчас находитесь на другой ветке.
Как переименовать ветку, которая уже находится на GitHub?
Переименуйте её локально с помощью git branch -m old new, удалите старое имя в удалённом репозитории с помощью git push origin --delete old, затем отправьте новое имя и задайте его upstream с помощью git push -u origin new. Всем остальным, у кого есть старая ветка, потребуется обновить свою локальную копию.
В чём разница между -m и -M?
-m (move) переименовывает ветку, но отказывается это делать, если ветка с целевым именем уже существует, так что вы не сможете случайно затереть другую ветку. -M принудительно выполняет переименование, перезаписывая существующую ветку с этим именем. Используйте -m, если только вы специально не намерены перезаписать.
Можно ли попрактиковаться в этом онлайн?
Да. Откройте терминальный playground, чтобы выполнить эти команды в настоящей оболочке в вашем браузере - ничего не нужно устанавливать. Бесплатный интерактивный курс по Git от Coddy также подробно охватывает работу с ветками.
Coddy programming languages illustration

Изучайте Git с Coddy

НАЧАТЬ