Как переименовать локальную ветвь Git?
Я не хочу переименовывать удаленную ветку, как описано в разделе Переименовать основную ветку для локальных и удаленных репозиториев Git.
Как я могу переименовать локальную ветку, которая не была перенесена в удаленную ветку?
В случае, если вам нужно также переименовать удаленную ветку:
Как переименовать как локальную, так и удаленную ветку Git?
Ответы
Ответ 1
Если вы хотите переименовать ветку, указав на какую-либо ветку, выполните:
git branch -m <oldname> <newname>
Если вы хотите переименовать текущую ветку, вы можете сделать следующее:
git branch -m <newname>
Можно помнить, что -m
используется для "перемещения" (или mv
), то есть для переименования файлов.
Если вы используете Windows или другую нечувствительную к регистру файловую систему, и в имени есть какие-либо изменения в заглавных буквах, вам нужно использовать -M
, в противном случае git выбросит ветвь, которая уже существует ошибка:
git branch -M <newname>
Ответ 2
git branch -m old_branch_name new_branch_name
Вышеуказанная команда изменит ваше название ветки, но вы должны быть очень осторожны с помощью переименованной ветки, потому что она все равно будет ссылаться на связанную с ней ветку восходящего потока, если она есть.
Если вы хотите переместить некоторые изменения в мастер после того, как локальная ветвь переименована в new_branch_name (имя примера):
git push origin new_branch_name:master
(теперь изменения перейдут на главную ветку, но ваше имя локальной ветки - new_branch_name)
Подробнее см. "Как переименовать имя локальной ветки в Git.
Ответ 3
Чтобы переименовать текущую ветку:
git branch -m <newname>
Ответ 4
Вот шаги, чтобы переименовать ветку:
- Переключитесь на ветку, которую нужно переименовать
-
git branch -m <new_name>
-
git push origin :<old_name>
-
git push origin <new_name>:refs/heads/<new_name>
РЕДАКТИРОВАТЬ (12/01/2017): Убедитесь, что вы запустили команду git status
и убедитесь, что вновь созданная ветка указывает на свою собственную ссылку, а не на более старую. Если вы найдете ссылку на более старую ветку, вам нужно удалить восходящий поток, используя:
git branch --unset-upstream
Ответ 5
Переименовать ветвь будет полезно после завершения вашей ветки. Затем наступает новый материал, и вы хотите развиваться в той же ветке, а не удалять ее и создавать новую.
Из моего опыта, чтобы переименовать локальную и удаленную ветку в 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
Ответ 6
Ответы до сих пор были правильными, но вот дополнительная информация:
Можно смело переименовывать ветку с помощью "-m" (переместить), но с "-m" нужно быть осторожнее, потому что она вызывает переименование, даже если уже существует ветвь с таким именем. Вот выдержка из справочной страницы git-branch:
С опцией -m или -m, <oldbranch>
будет переименовано в <newbranch>
. Если <oldbranch>
имел соответствующий reflog, он переименовывается, чтобы соответствовать <newbranch>
, и создается запись reflog для запоминания переименования ветки. Если существует <newbranch>
, то для принудительного переименования необходимо использовать -m.
Ответ 7
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
Ответ 8
Я по-глупо назвал ветку, начинающуюся с дефиса, а затем проверил мастер. Я не хотел, чтобы удалить мою ветку, я работал в ней.
Ни один из них не работал:
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
Ответ 9
Чтобы переименовать ветвь локально:
git branch -m [old-branch] [new-branch]
Теперь вам также придется распространять эти изменения на удаленном сервере.
Чтобы направить изменения удаленной старой ветки:
git push origin :[old-branch]
Чтобы внести изменения в создание новой ветки:
git push origin [new-branch]
Ответ 10
Переименуйте ветку с помощью этой команды:
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
Ответ 11
Опытные пользователи 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
Ответ 12
Переименовать ветку:
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
.
Ответ 13
- Переименуйте свое местное отделение.
Если вы находитесь на ветке, которую хотите переименовать:
git branch -m new-name
Если вы находитесь в другой ветке:
git branch -m old-name new-name
- Удалите удаленную ветку со старым именем и нажмите локальную ветвь с новым именем.
git push origin :old-name new-name
- Сброс восходящей ветки для локальной ветки с новым именем. Переключитесь на ветку и затем:
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
Ответ 14
Вот три шага: команда, которую вы можете вызвать внутри своего терминала и изменить название ветки.
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 Название ветки - хорошая статья об этом.
Ответ 15
Вероятно, как упоминалось другими, это будет несоответствие в наименовании веток.
Если у вас есть такая ситуация, я могу догадаться, что вы на Windows, которая также приведет вас к:
$ git branch -m CaseSensitive casesensitive
fatal: A branch named 'casesensitive' already exists.
Затем вам нужно сделать промежуточный шаг:
$ git branch -m temporary
$ git branch -m casesensitive
Ничего больше.
Ответ 16
Попытка ответить конкретно на вопрос (по крайней мере, заголовок).
Вы также можете переименовать локальную ветвь, но отслеживаете старое имя на пульте дистанционного управления.
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
. Тем не менее, я очень обескураживаю это, ради безопасности вашего ума.
Ответ 17
Если вы хотите использовать SourceTree (что я настоятельно рекомендую), вы можете щелкнуть правой кнопкой мыши по своей ветке и выбрать "Переименовать".
Ответ 18
Чтобы переименовать текущую ветку (за исключением отдельного состояния 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
, например:
Ответ 20
Другой вариант - вообще не использовать командную строку. Клиенты Git GUI, такие как SourceTree, убирают большую часть синтаксической кривой обучения/боли, из-за которой такие вопросы, как этот, входят в число самых просматриваемых при переполнении стека.
В SourceTree щелкните правой кнопкой мыши любую локальную ветку на панели "Ветви" слева и выберите "Переименовать...".
Ответ 21
Всего два шага для репликации изменения имени как на remote
так и на GitHub:
Шаг 1, git branch -m old_branchname new_branchname
Шаг 2 git push origin :old_branchname new_branchname
Ответ 22
Поскольку вы не хотите передавать ветку на удаленный сервер, этот пример будет полезен:
Допустим, у вас есть существующая ветка под названием "my-hot-feature", и вы хотите переименовать ее в "feature-15".
Во-первых, вы хотите изменить местное отделение. Это не может быть проще:
git branch -m my-hot-feature feature-15
Для получения дополнительной информации, вы можете посетить локально и удаленно переименование ветки в Git.
Ответ 23
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
Примечание: последняя команда деструктивна и переименует вашу ветку, но вы потеряете старую ветку с этим именем и этими коммитами, потому что имена веток должны быть уникальными.
Ответ 24
Простой способ сделать это:
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
Подробнее см. здесь.
Ответ 25
Если вы хотите изменить имя текущей ветки, запустите:
git branch -m [old_branch] [new_branch]
Если вы хотите удалить старую удаленную ветвь, запустите:
git push origin :[old_branch]
Если вы хотите удалить старую удаленную ветку и создать новую удаленную ветвь, запустите:
git push origin :old_branch new_branch
Ответ 26
git branch -m old_branch_name new_branch_name
или же
git branch --move old_branch_name new_branch_name
Ответ 27
Для пользователей Git GUI это не может быть намного проще.
В графическом интерфейсе Git выберите имя ветки из раскрывающегося списка в диалоговом окне "Переименовать ветвь", созданном из пункта меню "Ветвь: переименовать", введите новое имя и нажмите "Переименовать". Я выделил, где найти раскрывающийся список.
Ответ 28
Переименовать ветку Git можно с помощью:
-
git branch -m oldBranch newBranch
-
git branch -m oldBranch ExistingBranch
Разница между -m и -m:
-m: если вы пытаетесь переименовать ветку с существующим именем ветки, используя -m. Это вызовет ошибку, сообщающую, что ветвь уже существует. Вам нужно дать уникальное имя.
Но,
-m: это поможет вам принудительно переименовать имя, даже если оно существует. Таким образом, существующая ветка будет полностью перезаписана...
Вот пример терминала Git,
[email protected]:~/project/myapp/sunithamakeup$ git branch
master
master0
new_master
test
* test1
[email protected]:~/project/myapp/sunithamakeup$ git branch -m test1 test
fatal: A branch named 'test' already exists.
[email protected]:~/project/myapp/sunithamakeup$ git branch -M test1 test
[email protected]:~/project/myapp/sunithamakeup$ git branch
master
master0
new_master
* test
[email protected]:~/project/myapp/sunithamakeup$
Ответ 29
Все предыдущие ответы говорят о git branch -m
. Конечно, им легко управлять, но для меня может быть немного трудно запомнить другую команду Git. Поэтому я попытался выполнить работу командой, с которой был знаком. Да, вы можете догадаться.
Я использую git branch -b <new_branch_name>
. И если вы не хотите сохранять старую ветку сейчас, вы можете выполнить git branch -D <old_branch_name>
чтобы удалить ее.
Я знаю, что это может быть немного утомительно, но это легче понять и запомнить. Я надеюсь, что это полезно для вас.
Ответ 30
Если хотите:
- Переименуйте репозиторий 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