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

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

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

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

+7919
источник поделиться
34 ответа
  • 1
  • 2

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

git branch -m <oldname> <newname>

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

git branch -m <newname>

Можно помнить, что -m используется для "перемещения" (или mv), то есть для переименования файлов.

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

git branch -M <newname>
+12702
источник
git branch -m old_branch_name new_branch_name

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

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

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

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

+412
источник
другие ответы

Связанные вопросы


Похожие вопросы

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

git branch -m <newname>
+298
источник

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

  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
+255
источник

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

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

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

1. Переименуйте локальную ветвь

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

git branch -m new-name

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

git branch -m old-name new-name

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

git push origin :old-name new-name

3. Reset ветвь восходящего потока для локальной ветки нового имени

git push origin -u new-name
+185
источник

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

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

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

+103
источник

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
+85
источник

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

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

git checkout -dumb-name

git checkout -- -dumb-name

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

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

git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name
+72
источник

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

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

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

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

git push origin :[old-branch]

Чтобы внести изменения в создание новой ветки:

git push origin [new-branch]
+65
источник

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

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
+38
источник

Опытные пользователи 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
+35
источник

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

git branch -m old_branchname new_branchname

Здесь длинное название -m опция --move. Таким образом, мы также можем использовать:

git branch --move old_branchname new_branchname

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

git branch -m new_branchname

или же

git branch -move new_branchname

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

git push origin :old_branchname new_branchname

Это удалит удаленную ветку old_branchname и протолкнет локальную ветку new_branchname.

git push origin -u new_branchname

Это сбросит восходящую ветку для локальной ветки new_branchname.

+35
источник
  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

+30
источник

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

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 Название ветки - хорошая статья об этом.

+24
источник

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

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

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

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

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

Ничего больше.

+23
источник

Попытка ответить конкретно на вопрос (по крайней мере, заголовок).

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

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

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

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

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

+22
источник

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

enter image description here

+20
источник

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

[alias]
    mvh = !sh -c 'git branch -m 'git rev-parse --abbrev-ref HEAD' $1'
+19
источник

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

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

git branch -m my_new_branch

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

git branch -m my_old_branch my_new_branch

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

Change branch name locally

+19
источник

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

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

+17
источник

Всего два шага для репликации изменения имени как на remote так и на GitHub:

Шаг 1, git branch -m old_branchname new_branchname

Шаг 2 git push origin :old_branchname new_branchname

+17
источник

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

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

Во-первых, вы хотите изменить местное отделение. Это не может быть проще:

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

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

+14
источник

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

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

+12
источник

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

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

Подробнее см. здесь.

+11
источник

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

git branch -m [old_branch] [new_branch]

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

git push origin :[old_branch]

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

git push origin :old_branch new_branch
+10
источник
git branch -m old_branch_name  new_branch_name

или же

git branch --move old_branch_name new_branch_name
+5
источник

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

Rename a local Git branch

+5
источник

Переименовать ветку 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$
+4
источник

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

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

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

+3
источник

Если хотите:

  • Переименуйте репозиторий Git, запустите: git branch -m <oldname> <newname>
  • Удалить старую ветку: git push origin: old-name new-name
  • Зафиксируйте его, используя: git commit <newname>
    • и затем нажмите, используя: git push origin new_branch_name:master
  • Если вы хотите проверить статус, используйте: git status
  • Если вы хотите проверить, то используйте: git checkout
+2
источник
  • 1
  • 2

Посмотрите другие вопросы по меткам или Задайте вопрос