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

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

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

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

+7770
06 июл. '11 в 3:20
источник поделиться
30 ответа
  • 1
  • 2

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

git branch -m <oldname> <newname>

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

git branch -m <newname>

Помните, что это -m для "move" (или mv), то есть как вы переименовываете файлы.

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

git branch -M <newname>
+12478
06 июл. '11 в 3:21
источник
git branch -m old_branch_name new_branch_name

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

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

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

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

+397
21 янв. '13 в 9:49
источник

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


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

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

git branch -m <newname>
+289
20 июн. '13 в 15:05
источник

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

  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
+244
15 апр. '15 в 12:50
источник

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

Из моего опыта, чтобы переименовать локальную и удаленную ветку в 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
+177
14 окт. '16 в 3:22
источник

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

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

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

+98
24 сент. '13 в 13:21
источник

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
+81
17 дек. '15 в 13:45
источник

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

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

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
+70
09 нояб. '13 в 7:31
источник

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

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

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

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

git push origin :[old-branch]

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

git push origin [new-branch]
+63
20 авг. '15 в 6:39
источник

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

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
+36
11 апр. '15 в 6:19
источник

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

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.

+33
04 мар. '18 в 9:07
источник

Опытные пользователи 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
+32
05 авг. '15 в 9:04
источник
  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

+27
08 апр. '18 в 5:49
источник

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

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

+22
10 мая '16 в 18:04
источник

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

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

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

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

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

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

+22
25 мая '15 в 11:52
источник

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

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

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. Тем не менее, я очень обескураживаю это, ради безопасности вашего ума.

+20
19 мая '16 в 10:39
источник

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

enter image description here

+18
26 мая '17 в 11:14
источник

Поменять ветку локально довольно просто...

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

git branch -m my_new_branch

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

git branch -m my_old_branch my_new_branch

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

Change branch name locally

+18
04 июл. '17 в 14:01
источник

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

[alias]
    mvh = !sh -c 'git branch -m 'git rev-parse --abbrev-ref HEAD' $1'
+17
02 сент. '14 в 17:25
источник

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

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

+15
08 мар. '15 в 16:13
источник

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

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

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

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

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

+13
27 окт. '15 в 10:17
источник

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

Шаг 1, git branch -m old_branchname new_branchname

Шаг 2 git push origin :old_branchname new_branchname

+11
22 мар. '19 в 1:03
источник

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

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

+10
22 сент. '16 в 0:03
источник

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

git branch -m [old_branch] [new_branch]

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

git push origin :[old_branch]

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

git push origin :old_branch new_branch
+8
31 янв. '17 в 15:53
источник

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

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

Для больше, посмотрите это.

+8
27 мар. '18 в 16:00
источник

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

Rename a local Git branch

+4
03 сент. '18 в 15:58
источник
git branch -m old_branch_name  new_branch_name

или же

git branch --move old_branch_name new_branch_name
+4
22 июн. '18 в 9:30
источник

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

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

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

+3
29 авг. '17 в 2:16
источник

Переименовать ветку 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$
+3
01 сент. '17 в 6:59
источник

Если хотите:

  • Переименуйте репозиторий 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
26 авг. '17 в 14:18
источник
  • 1
  • 2

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