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

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

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

5839
задан Forrest 06 июля '11 в 6:20
источник поделиться
24 ответов

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

git branch -m <oldname> <newname>

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

git branch -m <newname>

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

9202
ответ дан siride 06 июля '11 в 6:21
источник поделиться
git branch -m old_branch_name new_branch_name

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

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

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

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

303
ответ дан Madhan Ayyasamy 21 янв. '13 в 12:49
источник поделиться

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

git branch -m <newname>
208
ответ дан Jonathan 20 июня '13 в 18:05
источник поделиться

Вот шаги для переименования ветки:

1. switch to branch which needs to be renamed
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
148
ответ дан Milind Anantwar 15 апр. '15 в 15: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
84
ответ дан trungk18 14 окт. '16 в 6:22
источник поделиться

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

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

70
ответ дан Vanchev 24 сент. '13 в 16: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
56
ответ дан Mohamed Osama 17 дек. '15 в 16: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
51
ответ дан Samuel Meacham 09 нояб. '13 в 10:31
источник поделиться

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

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

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

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

git push origin :[old-branch]

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

git push origin [new-branch]
48
ответ дан aliasav 20 авг. '15 в 9: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
23
ответ дан Hafiz Shehbaz Ali 11 апр. '15 в 9:19
источник поделиться

Расширенные 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
22
ответ дан Jethik 05 авг. '15 в 12:04
источник поделиться

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

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

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

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

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

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

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

14
ответ дан Pierre-Olivier Vares 19 мая '16 в 13:39
источник поделиться

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

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

12
ответ дан Steve Chambers 08 марта '15 в 19:13
источник поделиться

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

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

12
ответ дан Hazarapet Tunanyan 10 мая '16 в 21:04
источник поделиться

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

[alias]
    mvh = !sh -c 'git branch -m `git rev-parse --abbrev-ref HEAD` $1'
11
ответ дан dentuzhik 02 сент. '14 в 20:25
источник поделиться

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

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

Сначала вы хотите изменить локальную ветвь. Это не может быть проще:

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

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

7
ответ дан Tanah 27 окт. '15 в 13:17
источник поделиться

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

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

6
ответ дан Marcin Szymczak 26 мая '17 в 14: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

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

5
ответ дан nikkypx 22 сент. '16 в 3:03
источник поделиться

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

git branch -m [old_branch] [new_branch]

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

git push origin :[old_branch]

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

git push origin :old_branch new_branch
4
ответ дан Arif 31 янв. '17 в 18:53
источник поделиться

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

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

git branch -m my_new_branch

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

git branch -m my_old_branch my_new_branch

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

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

3
ответ дан Alireza 04 июля '17 в 17:01
источник поделиться

Если вы хотите переименовать git репозиторий -
git branch -m <oldname> <newname>
удалить старый филиал by-
git push origin :old-name new-name
Зафиксируйте его с помощью

git commit <newname>
а затем нажмите, используя git push origin new_branch_name:master
Если вы хотите проверить статус, используйте: -
git status
Если вы хотите проверить, то: -
git checkout

0
ответ дан Vineet Jain 26 авг. '17 в 17:18
источник поделиться

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

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

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

0
ответ дан Dai Kaixian 29 авг. '17 в 5:16
источник поделиться

git переименование ветки может быть выполнено с помощью

  • git branch -m oldBranch newBranch

  • 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$ 
0
ответ дан Mohideen ibn Mohammed 01 сент. '17 в 9:59
источник поделиться

Другие вопросы по меткам