Как переименовать местную ветку Git? - PullRequest
7762 голосов
/ 06 июля 2011

Я не хочу переименовывать удаленную ветку, как описано в Переименовать основную ветку как для локальных, так и для удаленных репозиториев Git .

Как переименоватьлокальная ветвь, которая не была перенесена в удаленную ветвь?

В случае, если вам необходимо переименовать удаленную ветвь, а также:
Как переименоватькак локальное, так и удаленное имя Git

Ответы [ 33 ]

12463 голосов
/ 06 июля 2011

Если вы хотите переименовать ветку, указав на любую ветку, выполните:

git branch -m <oldname> <newname>

Если вы хотите переименовать текущую ветку, вы можете сделать:

git branch -m <newname>

Способ запомнить это, -m предназначен для «перемещения» (или mv), то есть, как вы переименовываете файлы.

397 голосов
/ 21 января 2013
git branch -m old_branch_name new_branch_name

Приведенная выше команда изменит имя вашей ветви, но вы должны быть очень осторожны, используя переименованную ветку, потому что она все равно будет ссылаться на старую ветвь восходящего потока, связанную с ней, если таковая имеется.

Если вы хотите внести некоторые изменения в master после того, как ваша локальная ветвь будет переименована в new_branch_name (пример имени):

git push origin new_branch_name:master (теперь изменения перейдут в главную ветку, но ваше локальное имя ветки new_branch_name)

Подробнее см. " Как переименовать имя вашей локальной ветки в Git ."

289 голосов
/ 20 июня 2013

Чтобы переименовать вашу текущую ветку:

git branch -m <newname>
244 голосов
/ 15 апреля 2015

Вот шаги по переименованию ветви:

  1. Переключитесь на ветку, которую нужно переименовать
  2. git branch -m <new_name>
  3. git push origin :<old_name>
  4. git push origin <new_name>:refs/heads/<new_name>

РЕДАКТИРОВАТЬ (12/01/2017): Убедитесь, что вы выполнили команду git status и убедитесь, что вновь созданная ветвь указывает на еесобственный реф, а не старый.Если вы найдете ссылку на более старую ветку, вам нужно сбросить восходящий поток, используя:

git branch --unset-upstream
175 голосов
/ 14 октября 2016

Переименовать ветку будет полезно, когда ваша ветка закончится.Затем приходят новые вещи, и вы хотите развиваться в той же ветке, а не удалять ее и создавать новую.

Из моего опыта, чтобы переименовать локальную и удаленную ветку в Git, вы должны сделать следующие шаги.

Цитирование из Несколько состояний - Переименуйте локальную и удаленную ветку в git

1.Переименуйте ваше местное отделение

Если вы находитесь в филиале, который хотите переименовать:

git branch -m new-name

Если вы находитесь в другом филиале:

git branch -m old-name new-name

2.Удалите удаленную ветку со старым именем и нажмите локальную ветвь с новым именем

git push origin :old-name new-name

3.Сброс восходящей ветви для локальной ветви с новым именем

git push origin -u new-name
98 голосов
/ 24 сентября 2013

Ответы до сих пор были правильными, но вот дополнительная информация:

Можно переименовать ветку с помощью «-m» (переместить), но нужно быть осторожным, потому что «-M» вызывает переименование, даже если уже существует ветвь с таким именем. Вот выдержка из справочной страницы git-branch:

> С параметром -m или -M <oldbranch> будет переименован в <newbranch>. Если <oldbranch> имел соответствующий reflog, он переименовывается, чтобы соответствовать <newbranch>, и создается запись reflog для запоминания переименования ветви. Если существует <newbranch>, для принудительного переименования необходимо использовать -M.

81 голосов
/ 17 декабря 2015

1. Переименовать

Если это ваша текущая ветка, просто наберите

git branch -m new_name

Если это другая ветка, которую вы хотите переименовать

git branch -m old_name new_name

2. Отслеживать новую удаленную ветку

- Если ваша ветвь была нажата, то после переименования вам нужно удалить ее из удаленного репозитория Git и попросить новую локальную систему отследить новую удаленную ветку:

git push origin :old_name
git push --set-upstream origin new_name
70 голосов
/ 09 ноября 2013

Я по глупости назвал ветку, начинающуюся с дефиса, а затем проверил мастера. Я не хотел удалять свою ветку, у меня была работа в ней.

Ни один из них не работал:

git checkout -dumb-name

git checkout -- -dumb-name

" с, ' с и \ с тоже не помогли. git branch -m не работает.

Вот как я наконец исправил это. Зайдите в .git / refs /head вашей рабочей копии, найдите имя файла "-dumb-name", получите хэш ветки. Затем это проверит это, создаст новую ветку с нормальным именем и удалит старую.

git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name
63 голосов
/ 20 августа 2015

Чтобы переименовать ветку локально:

git branch -m [old-branch] [new-branch]

Теперь вам нужно будет распространить эти изменения и на вашем удаленном сервере.

Чтобы отправить изменения удаленной старой ветки:

git push origin :[old-branch]

Нажать на изменения создания новой ветки:

git push origin [new-branch]
36 голосов
/ 11 апреля 2015

Переименуйте ветку с помощью этой команды:

git branch -m [old_branch_name] [new_branch_name]

-m: переименовывает / перемещает ветку. Если ветка уже есть, вы получите ошибку.

Если ветка уже существует и вы хотите переименовать ее, используйте:

 git rename -M [old_branch_name] [new_branch_name]

Для получения дополнительной информации о помощи, используйте эту команду в терминале:

git branch --help

или

man git branch
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...