Как переименовать локальную ветку Git?

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

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

Если вам нужно также переименовать удаленную ветку:
Как переименовать локальное и удаленное имя ветки Git


person Forrest    schedule 06.07.2011    source источник


Ответы (34)


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

git branch -m <oldname> <newname>

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

git branch -m <newname>

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

git push origin -u <newname>

И, наконец, если вы хотите удалить удаленную ветку:

git push origin --delete <oldname>

Способ запомнить, что это -m для перемещения (или mv), так вы переименовываете файлы. Также может помочь добавление псевдонима. Для этого запустите следующее:

git config --global alias.rename 'branch -m'

Если вы работаете в Windows или другой файловой системе без учета регистра и в имени изменены только заглавные буквы, вам нужно использовать -M, иначе git выдаст ветка уже существует ошибка:

git branch -M <newname>
person siride    schedule 06.07.2011
comment
Я действительно хотел знать, обязательно ли это повлияет на удаленную ветку, когда / если вы нажмете - person PandaWood; 23.01.2012
comment
@PandaWood: он добавит новую ветку при нажатии, но не удалит старую ветку. Если вы используете git push -f --mirror, он переименует ветку на удаленном компьютере, но вы должны использовать этот метод только в том случае, если удаленный компьютер просто должен быть копией вашего текущего репозитория. См. Также этот вопрос: stackoverflow.com/questions/1526794/git-rename -remote-branch - person siride; 23.01.2012
comment
@PandaWood, это зависит от того, как push.default настроен. По умолчанию (matching) он отправляется на удаленный компьютер, имя которого совпадает. Вам нужно будет сделать git push origin <newname>:<oldname>, иначе вы создадите новую удаленную ветку. Однако, если для push.default установлено значение upstream, вы можете push origin head, и все перейдет к старому имени на пульте дистанционного управления. - person Erin Stanfill; 01.11.2013
comment
@ NightOwl888: -m, вероятно, является сокращением от move, следуя соглашению Unix об использовании mv для переименования файлов. Причина этого в том, что перемещение и переименование в файловой системе inode на основе каталогов полностью эквивалентны. - person siride; 03.09.2014
comment
Может не работать в Windows. Git в Windows жалуется, что ветка уже существует. - person Sam Rueby; 30.03.2015
comment
@ Sam.Rueby: Я не могу воспроизвести эту ошибку. Он отлично работает для меня. Я использую msysgit (git версии 1.9.5.msysgit.0) в Windows 7, 64-разрядная версия. - person siride; 30.03.2015
comment
Длинное имя параметра -m - --move, например, git branch --move master переименовывает текущую ветку, чтобы она была названа главной. - person robenkleene; 22.09.2015
comment
интересно, похоже, что переименование временно нечувствительно к регистру даже на OSX. Начиная с FB12.show_hide_cols, -m fb12.show_hide_cols получил ошибку существующей ветки. Но -m fb12.show_hide_col, затем -m fb12.show_hide_cols привели меня туда, куда я хотел. после этого git branch показывает только одну переименованную ветку, как я и хотел. - person JL Peyret; 22.03.2016
comment
После этого вы также должны запустить git push origin :<old_name> <new_name>, чтобы обновить имена удаленных веток. - person David Meza; 01.04.2016
comment
@ Sam.Rueby Вам нужно будет использовать -M для переименования, если вы меняете только регистр, поскольку git сообщит вам, что эта ветка уже существует. - person Chiel ten Brinke; 01.07.2016
comment
для тех, кто наткнется на эту ветку и прокомментирует, будьте осторожны, рассматривая возможность использования git push -f --mirror. это также переместит все локальные ветки на удаленные, включая все неотрезанные ветвления. Я сделал это и перенес более 30 старых веток на удаленный ... упс! - person liltitus27; 01.12.2016
comment
Также будьте очень осторожны с git push -f --mirror, потому что он будет буквально отражать ваше местное репо. Это может быть нормально, если вы работаете в одиночку, но если вы вносите свой вклад в базу кода с командой git push -f --mirror удалит все ветки, которые не находятся на вашем локальном компьютере. - person Bueno; 05.09.2018
comment
@HaFizUmer Это переименует только ваши локальные ветки. Если вы хотите распространить эти изменения в другой репозиторий, например репозиторий GitHub, вам нужно будет запустить git push origin :old_branchname new_branchname (см. Ответ Harry_pb ниже). - person siride; 27.03.2019
comment
Nitpicking: файловая система Windows (NTFS) фактически чувствительна к регистру. Он предназначен для систем, которые выбирают доступ к файловой системе без учета регистра. Windows делает это. - person IInspectable; 16.12.2019
comment
возможно ли, что старая ветка не удаляется в Windows, если я использую -m и ту же ветку с двумя именами, и если я фиксирую в новой ветке, она идет дальше от более старой stackoverflow.com/questions/61367248/ - person Kiwi Rupela; 22.04.2020
comment
Будет ли это также переименовывать ветку на пульте дистанционного управления? Если нет, то как это сделать? - person Michael; 29.04.2020
comment
Вы не потеряете изменения (неустановленные / измененные файлы) при выполнении этого локально. Скажем, например, вы работаете над новой веткой ... тогда, прежде чем зафиксировать свои изменения, вы понимаете, что то, что вы на самом деле сделали, не соответствует имени ветки. Вы можете смело переименовать его, прежде чем вносить изменения. Таким образом, когда он сливается, имена обретают смысл позже. - Просто хотел добавить, что это не было упомянуто на случай, если кто-то еще задается вопросом, что произойдет :) - person Wade; 14.04.2021

git branch -m old_branch_name new_branch_name

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

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

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

Дополнительные сведения см. В разделе "Как переименуйте название своего локального филиала в Git ".

person Madhan Ayyasamy    schedule 21.01.2013

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

git branch -m <newname>
person Jonathan    schedule 20.06.2013
comment
Вам нужно будет использовать -M для переименования, если вы меняете только регистр, поскольку git сообщит вам, что ветка уже существует. - person cjspurgeon; 09.05.2015
comment
а потом git push origin HEAD:<oldname> - person techkuz; 28.01.2021

Вот шаги, чтобы переименовать ветку:

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

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

git branch --unset-upstream
person Milind Anantwar    schedule 15.04.2015
comment
На каком этапе нужно отключить восходящий поток? Перед шагом 4? - person Cyclonecode; 01.07.2018
comment
Это лучший ответ здесь, поскольку он описывает полный процесс правильного завершения переименования. - person Chris Halcrow; 21.04.2020
comment
Чтобы объяснить шаги: 1 = переключиться на ветвь локально, 2 = «переместить», т.е. «переименовать» ветвь локально (-m), 3 = нажать «ничего» в старое место назначения ветки на удаленном компьютере (т.е. удалить ссылку на ветку на удаленном компьютере) - левая часть двоеточия - это «источник», правая часть - «место назначения», 4 = нажать ссылку (указатель) на новую ветку, на удаленный - person Chris Halcrow; 19.06.2020
comment
@Milind Anantwar, что значит проверить, что новая ветка указывает на ее собственный ref? И не могли бы вы объяснить, как git branch --unset-upstream разрешает несинхронизированные условия, о которых вы говорите? - person Chris Halcrow; 19.06.2020
comment
Я тоже использовал это git push origin HEAD Он отлично работает - person AnilS; 06.07.2020
comment
Я также использовал этот git push origin HEAD. Он работает нормально. - person AnilS; 06.07.2020
comment
Добавление --set-upstream на шаге 4 тоже должно помочь. - person Ph3n0x; 07.10.2020

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

По моему опыту, чтобы переименовать локальную и удаленную ветку в 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
person trungk18    schedule 14.10.2016
comment
Этот сработал для меня лучше. Здесь 2 шага дали мне следующие ошибки: error: dst ref refs/heads/<old-name> receives from more than one src.; error: failed to push some refs to 'git@uri:foo/bar.git' - person Anto; 23.02.2018
comment
У вас проблема при запуске команды git push origin :old-name new-name, верно? - person trungk18; 23.02.2018
comment
Да точно (извините, я имел в виду 2-й шаг, а не 2 шага - устал) - person Anto; 23.02.2018

Пока что ответы были правильными, но вот дополнительная информация:

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

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

person Vanchev    schedule 24.09.2013
comment
Что происходит с перезаписанной веткой? - person Kevin Dice; 22.06.2015
comment
Он перезаписывается новым именем / веткой. Например, если у вас есть следующие ветки в git: master b1 ‹- текущая ветка b2 после того, как вы выполните 'git branch -M b2', у вас будет только: master b2‹ - текущая ветка b1 исчезнет, ​​и если вы хотите восстановить его, вы должны проверить его по хешу. Вы можете увидеть это, набрав «git reflog». Ваше здоровье. - person Vanchev; 26.06.2015
comment
Флаг -M также полезен для принудительного переименования, если вы просто исправляете регистр имени ветки, например изменение myBranch на MyBranch. (С -m git возвращает fatal: A branch named 'MyBranch' already exists.) - person Jon Schneider; 14.02.2018

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
person Oss    schedule 17.12.2015

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

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

git checkout -dumb-name

git checkout -- -dumb-name

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

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

git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name
person Samuel Meacham    schedule 09.11.2013
comment
Не могли бы вы просто переименовать файл в refs / Heads? - person android.weasel; 13.11.2013
comment
То же. Если вам нужно покопаться в структуре каталогов, чтобы сделать это волшебство, пройдите весь путь и выполните 'mv - -dumb-name brilliant-name'. Выполните 'git branch -av', и вы увидите структуру каталогов .git / ссылки. Или, может быть, 'grep -R ^ .git / refs', чтобы увидеть хеши напрямую. - person Dave X; 19.12.2013
comment
Вы, вероятно, могли использовать reflog - person Code Whisperer; 14.01.2015
comment
Честно говоря, если бы вы хотели пойти именно по этому пути, я бы избегал (запутанного и потенциально опасного ИМО, если вы не знаете, что делаете) пробежки по каталогу .git в первую очередь, и просто сделайте это с помощью некоторых обычные команды с некоторым анализом журнала git (с использованием соответствующих флагов для отображения ветвей и определения того, из какого шасума вы хотите получить новую ветку), а затем выполните это. Затем удалите ветвь с ненадежным именем. Я презираю, что git настаивает на том, что вам нужно понимать всю его внутреннюю работу, чтобы делать некоторые вещи, но я очень ценю то, что вы можете делать эти вещи. - person Jon V; 27.02.2016
comment
В 2.10.1+ сложнее создать ветку с плохой репутацией. Если вы каким-то образом это сделаете, вы можете использовать git branch -v, чтобы получить короткую хеш-версию ваших веток (добавьте -r для удаленного доступа). Затем вы можете использовать git rev-parse ‹shorthash›, чтобы получить полный хэш, если он вам нужен. - person House of Dexter; 06.03.2017
comment
Вы также можете использовать git show-ref, это даст вам длинный хеш всего в вашем локальном репо. и я имею в виду все ... ветки / тайники / теги ... и т. д. - person House of Dexter; 07.03.2017

Всего три шага, чтобы воспроизвести изменение имени на remote, а также на GitHub:

Шаг 1 git branch -m old_branchname new_branchname

Шаг 2 git push origin :old_branchname new_branchname

Шаг 3 git push --set-upstream origin new_branchname

person Harry_pb    schedule 22.03.2019
comment
Мне также пришлось сделать одну дополнительную вещь: git push --set-upstream origin new_branchname, который упоминается в ответе @Nomade - person Ibrahim Mohamed; 17.08.2019
comment
Шаг 3 не нужен. После шага 2 все было актуальным. - person Dev; 25.03.2020
comment
@Dev не во всех случаях Dev, мне недавно пришлось обновить, так как я использовал bitbucket и codecommit, шаг 3 необходим - person Harry_pb; 25.03.2020

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

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

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

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

git push origin :[old-branch]

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

git push origin [new-branch]
person aliasav    schedule 20.08.2015

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

git branch -m [old_branch_name] [new_branch_name]

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

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

 git rename -M [old_branch_name] [new_branch_name]

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

git branch --help

or

man git branch
person Hafiz Shehbaz Ali    schedule 11.04.2015

Опытные пользователи Git могут переименовать вручную, используя:

Rename the old branch under .git/refs/heads to the new name

Rename the old branch under .git/logs/refs/heads to the new name

Update the .git/HEAD to point to yout new branch name
person Jethik    schedule 05.08.2015

  1. Переименуйте местный филиал.

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

git branch -m new-name

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

git branch -m old-name new-name
  1. Удалите удаленную ветку со старым именем и нажмите локальную ветвь с новым именем.

git push origin :old-name new-name

  1. Сбросьте восходящую ветвь для локальной ветки с новым именем. Переключитесь на ветку и затем:

git push origin -u new-name

Или, чтобы сделать это быстро, вы можете использовать эти 3 шага:

# Переименовать ветку локально

git branch -m old_branch new_branch  

# Удалить старую удаленную ветку

git push origin :old_branch  

# Нажмите новую ветку, установите локальную ветку для отслеживания нового пульта

git push --set-upstream origin new_branch   

Ссылка: https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html.

person badarshahzad    schedule 08.04.2018

Вот три шага: Команда, которую вы можете вызвать внутри своего терминала и изменить имя ветки.

git branch -m old_branch new_branch         # Rename branch locally
git push origin :old_branch                 # Delete the old branch
git push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

Если вам нужно больше: пошагово, Как изменить имя ветки Git - хорошая статья об этом.

person Hazarapet Tunanyan    schedule 10.05.2016

Вероятно, как упоминалось другими, это будет несоответствие регистра в именовании веток.

Если у вас возникла такая ситуация, я могу предположить, что вы используете Windows, что также приведет вас к:

$ git branch -m CaseSensitive casesensitive
fatal: A branch named 'casesensitive' already exists.

Затем вам нужно сделать промежуточный шаг:

$ git branch -m temporary
$ git branch -m casesensitive

Больше ничего.

person P4C    schedule 25.05.2015
comment
Обратите внимание, что эта ситуация также может возникнуть на Mac, который также (что исключительно досадно) нечувствителен к регистру в своей файловой системе. - person Jon V; 27.02.2016
comment
В качестве альтернативы вы можете использовать -M вместо -m для переименования такого рода исправлений корпуса за один шаг. - person Jon Schneider; 14.02.2018

Пытаюсь конкретно ответить на вопрос (хотя бы заголовок).

Вы также можете переименовать ветвь local, но продолжайте отслеживать старое имя на удаленном компьютере.

git branch -m old_branch new_branch
git push --set-upstream origin new_branch:old_branch

Теперь, когда вы запускаете git push, удаленный old_branch ref обновляется вашим локальным new_branch.

Вы должны знать и помнить эту конфигурацию. Но это может быть полезно, если у вас нет выбора для имени удаленной ветки, но оно вам не нравится (о, я имею в виду, у вас есть очень веская причина не любить it!) и предпочитайте более ясное название для вашего местного филиала.

Играя с конфигурацией выборки, вы даже можете переименовать локальную удаленную ссылку. то есть, имея указатель refs/remote/origin/new_branch ref на ветку, это фактически old_branch на origin. Однако я настоятельно не рекомендую это делать для вашей безопасности.

person Pierre-Olivier Vares    schedule 19.05.2016

Изменить ветку локально довольно просто ...

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

git branch -m my_new_branch

В противном случае, если вы находитесь в master или любой другой ветке, кроме той, имя которой вы хотите изменить, просто выполните:

git branch -m my_old_branch my_new_branch

Кроме того, я создаю изображение ниже, чтобы показать это в действии в командной строке. В этом случае вы находитесь в ветке master, например:

Изменить название ветки локально

person Alireza    schedule 04.07.2017

Чтобы переименовать текущую ветку (за исключением состояния отдельной HEAD), вы также можете использовать этот псевдоним:

[alias]
    mvh = !sh -c 'git branch -m `git rev-parse --abbrev-ref HEAD` $1'
person dentuzhik    schedule 02.09.2014

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

введите описание изображения здесь

person Marcin Szymczak    schedule 26.05.2017

Другой вариант - вообще не использовать командную строку. Клиенты Git с графическим интерфейсом пользователя, такие как SourceTree, устраняют большую часть кривой синтаксического обучения / боли, которая вызывает такие вопросы, как этот, быть среди самых просматриваемых на Stack Overflow.

В SourceTree щелкните правой кнопкой мыши любую локальную ветвь на панели «Ветви» слева и выберите «Переименовать ...».

person Steve Chambers    schedule 08.03.2015
comment
Я бы не назвал это болью. Команда git очень проста в использовании, как только вы увидите этот ответ, вы, вероятно, больше никогда не вернетесь. Проблема больше в том, что, похоже, документация командной строки git недостаточно интуитивно понятна. - person Nearoo; 08.03.2015
comment
Верно, но с SourceTree мне почти не нужно беспокоиться о проверке документации. В целом все интуитивно понятно - просто щелкните правой кнопкой мыши и посмотрите, какие есть варианты. (Кстати, я никоим образом не связан с ними - как и инструмент!) - person Steve Chambers; 08.03.2015

Простой способ сделать это:

git branch -m old_branch new_branch         # Rename branch locally
git push origin :old_branch                 # Delete the old branch
git push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

Для получения дополнительной информации см. это.

person Nomade    schedule 27.03.2018

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

Допустим, у вас есть ветка под названием «my-hot-feature», и вы хотите переименовать ее в «feature-15».

Во-первых, вы хотите сменить местный филиал. Нет ничего проще:

git branch -m my-hot-feature feature-15

Для получения дополнительной информации вы можете посетить Локальное и удаленное переименование Ветка в Git.

person Tanah    schedule 27.10.2015

Git версии 2.9.2

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

git branch -m new_name

Если вы хотите изменить имя другой ветки:

git branch -m old_name new_name

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

git branch -M old_name new_name_that_already_exists

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

person nikkypx    schedule 22.09.2016

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

git branch -m [old_branch] [new_branch]

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

git push origin :[old_branch]

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

git push origin :old_branch new_branch
person Arif    schedule 31.01.2017

На самом деле у вас есть три шага, потому что у локального филиала есть дубликат на сервере, поэтому у нас есть один шаг для локального на двух шагах на сервере:

  1. Rename local: просто используйте следующую команду, чтобы переименовать текущую ветку, даже если вы ее проверили:
    git branch -m <old-branch-name> <new-branch-name>
    
  2. Удалить серверный: используйте следующую команду, чтобы удалить ветку старого имени на сервере:
    git push <remote-name[origin by default]> :<old-branch-name>
    
  3. Нажмите новую: теперь пора разместить новую ветку с именем на сервере:
    git push -u <new-branch-name>
    
person AmerllicA    schedule 05.08.2020
comment
в моем случае 3-я команда заботится о переименовании удаленной ветки, не выполняя выше 2-ю команду. Надо ли удалять перед переименованием удаленную ветку? - person SP007; 17.09.2020
comment
@ SP007, 2-я команда не важна, но я немного беспокоюсь о ясности на git server. поэтому я не храню бесполезные ветки. - person AmerllicA; 17.09.2020
comment
когда я выполняю третью команду, она переименовывает существующую удаленную ветку. - person SP007; 17.09.2020
comment
@ SP007, потестирую, может 2-я команда не нужна. - person AmerllicA; 17.09.2020

Переименование ветки Git можно выполнить с помощью:

  1. git branch -m oldBranch newBranch

  2. git branch -M oldBranch ExistingBranch

Разница между -m и -M:

-m: если вы пытаетесь переименовать свою ветку с существующим именем ветки с помощью -m. Это вызовет ошибку, сообщающую, что ветка уже существует. Вам нужно дать уникальное имя.

Но,

-M: это поможет вам принудительно переименовать с заданным именем, даже если оно существует. Таким образом, существующая ветка будет полностью перезаписана им ...

Вот пример терминала Git

mohideen@dev:~/project/myapp/sunithamakeup$ git branch
  master
  master0
  new_master
  test
* test1
mohideen@dev:~/project/myapp/sunithamakeup$ git branch -m test1 test
fatal: A branch named 'test' already exists.
mohideen@dev:~/project/myapp/sunithamakeup$ git branch -M test1 test
mohideen@dev:~/project/myapp/sunithamakeup$ git branch
  master
  master0
  new_master
* test
mohideen@dev:~/project/myapp/sunithamakeup$
person Mohideen bin Mohammed    schedule 01.09.2017

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

git checkout old-name

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

git branch --list

Когда все будет в порядке, выполните следующие действия:

  1. Для использования команды переименования ветки Git потребуется добавить в команду параметр -m:

    git branch -m new-name
    
  2. Вы также можете переименовать локальную ветку из другой ветки, используя следующие две команды:

    git checkout master
    
    git branch -m old-name new-name
    
  3. Наконец, эта команда выведет список всех - как локальных, так и удаленных - ветвей, чтобы убедиться, что они были переименованы:

    git branch -a
    

Хотя переименовать удаленную ветку напрямую невозможно, процесс переименования включает следующие три простых шага:

  1. Для начала вам нужно будет переименовать локальную ветку, выполнив предыдущие шаги. 2. Затем удалите старую ветвь и нажмите новую. Вы можете легко сделать это с помощью следующих команд:

     git push origin --delete old-name
     git push origin :old-name new-name
    
  2. Сбросьте исходную ветку для вашей новой локальной ветки, и все будет готово:

    git push origin -u new-name
    
person S. Hesam    schedule 28.09.2020

Для пользователей Git GUI это не может быть намного проще. В графическом интерфейсе Git выберите имя ветки из раскрывающегося списка в диалоговом окне «Переименовать ветвь», созданном из пункта меню «Ветвь: переименовать», введите новое имя и нажмите «Переименовать». Я выделил, где найти раскрывающийся список.

Переименовать локальную ветку Git

person Ivan    schedule 03.09.2018

Все предыдущие ответы говорят о git branch -m. Конечно, с ней легко работать, но мне может быть немного сложно запомнить другую команду Git. Так что я попытался выполнить работу знакомой мне командой. Да, вы уже догадались.

Я использую git branch -b <new_branch_name>. И если вы не хотите сохранять старую ветку сейчас, вы можете выполнить git branch -D <old_branch_name>, чтобы удалить ее.

Я знаю, что это может быть немного утомительно, но это легче понять и запомнить. Я надеюсь, что это будет полезно для вас.

person Dai Kaixian    schedule 29.08.2017
comment
Если у вас возникли проблемы с запоминанием команд, вы можете настроить псевдонимы оболочки или git для себя. - person sean; 17.12.2019

Если хотите:

  • Переименуйте репозиторий Git, запустите: git branch -m <oldname> <newname>
  • Удалите старую ветку: git push origin: old-name new-name
  • Commit it using: git commit <newname>
    • and then push using: git push origin new_branch_name:master
  • Если вы хотите проверить статус, используйте: git status
  • Если вы хотите оформить заказ, используйте: git checkout
person Vineet Jain    schedule 26.08.2017

В PhpStorm:

VCS → Git → Ветви ... → Локальные ветки → _ваша_ ветка_ → Переименовать

person AlexSi    schedule 14.03.2018

Все, что вам нужно сделать, это три шага:

  1. Дайте старой ветке в .git / refs / Head новое имя
  2. Дайте старой ветке в .git / logs / refs / Head новое имя
  3. Обновите .git / HEAD, чтобы указать новое имя ветки.
person Community    schedule 10.05.2020

Для локально

сначала измените текущую ветку с ветки, которую вы хотите обновить, например, у меня есть 3 ветки ветка1, ветка2, ветка3

проверить текущую ветку

git branch --show-current

выход может: branch1

тогда вы можете обновить имя ветки2 и ветки3, а не текущее

git branch -m old_branchname new_branchname



Для удаленного

Всего три шага для репликации изменения имени как на удаленном компьютере, так и на GitHub:

git branch -m old_branchname new_branchname
git push origin :old_branchname new_branchname
git push --set-upstream origin new_branchname
person MD SHAYON    schedule 27.07.2020

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

-m означает переместить все из [старой-ветки] в [новую-ветку] и помните, что вы можете использовать -M для других файловых систем.

person Saad Bilal    schedule 27.08.2019
comment
Это похоже на повторение существующих ответов - person Jordan Daniels; 14.11.2019