Я не хочу переименовывать удаленную ветку, как описано в разделе Переименовать основную ветку для локальных и удаленных репозиториев Git.
Как я могу переименовать локальную ветку, которая не была перенесена в удаленную ветку?
В случае, если вам нужно также переименовать удаленную ветку:
Как переименовать как локальную, так и удаленную ветку Git?
Если вы хотите переименовать ветвь, указав ее на любую ветку, выполните следующие действия:
git branch -m <oldname> <newname>
Если вы хотите переименовать текущую ветку, вы можете сделать:
git branch -m <newname>
Способом запомнить это, -m
для "move" (или mv
), то есть как вы переименовываете файлы.
git branch -m old_branch_name new_branch_name
Вышеуказанная команда изменит ваше название ветки, но вы должны быть очень осторожны с помощью переименованной ветки, потому что она все равно будет ссылаться на связанную с ней ветку восходящего потока, если она есть.
Если вы хотите переместить некоторые изменения в мастер после того, как локальная ветвь переименована в new_branch_name (имя примера):
git push origin new_branch_name:master
(теперь изменения перейдут на главную ветку, но ваше имя локальной ветки - new_branch_name)
Подробнее см. "Как переименовать имя локальной ветки в Git.
Чтобы переименовать текущую ветку:
git branch -m <newname>
Вот шаги, чтобы переименовать ветку:
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
Переименовать ветвь будет полезно после завершения вашей ветки. Затем наступает новый материал, и вы хотите развиваться в той же ветке, а не удалять ее и создавать новую.
Из моего опыта, чтобы переименовать локальную и удаленную ветку в Git, вы должны сделать следующие шаги.
Цитата из Несколько состояний. Переименуйте локальную и удаленную ветвь в git
Если вы находитесь в филиале, вы хотите переименовать:
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
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'
git push origin :old-name new-name
right?
Ответы до сих пор были правильными, но вот дополнительная информация:
Можно переименовать ветку с помощью "-m" (переместить), но нужно быть осторожным, потому что "-m" вызывает переименование, даже если уже существует существующая ветвь с таким именем. Вот выдержка из справочной страницы git-branch:
> При использовании опции -m или -m <oldbranch>
будет переименовано в <newbranch>
. Если <oldbranch>
имел соответствующий reflog, он переименовывается, чтобы соответствовать <newbranch>
, и создается запись reflog для запоминания переименования ветки. Если <newbranch>
существует, для принудительного переименования необходимо использовать -m.
Если это ваша текущая ветка, просто сделайте
git branch -m new_name
Если это другая ветка, которую вы хотите переименовать
git branch -m old_name new_name
- Если ваша ветка была перенесена, то после переименования вам нужно удалить ее из удаленного репозитория Git и попросить новую локальную систему отследить новую удаленную ветку:
git push origin :old_name
git push --set-upstream origin new_name
Я по-глупо назвал ветку, начинающуюся с дефиса, а затем проверил мастер. Я не хотел, чтобы удалить мою ветку, я работал в ней.
Ни один из них не работал:
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
Чтобы переименовать ветвь локально:
git branch -m [old-branch] [new-branch]
Теперь вам также придется распространять эти изменения на удаленном сервере.
Чтобы направить изменения удаленной старой ветки:
git push origin :[old-branch]
Чтобы внести изменения в создание новой ветки:
git push origin [new-branch]
Переименуйте ветку с помощью этой команды:
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
Расширенные 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
Переименовать ветку:
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
.
Если вы находитесь на ветке, которую хотите переименовать:
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
Вот три шага: команда, которую вы можете вызвать внутри своего терминала и изменить название ветки.
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 Название ветки - хорошая статья об этом.
Вероятно, как упоминалось другими, это будет несоответствие в наименовании веток.
Если у вас есть такая ситуация, я могу догадаться, что вы на Windows, которая также приведет вас к:
$ git branch -m CaseSensitive casesensitive
fatal: A branch named 'casesensitive' already exists.
Затем вам нужно сделать промежуточный шаг:
$ git branch -m temporary
$ git branch -m casesensitive
Ничего больше.
-M
вместо -m
чтобы сделать такое переименование «исправления оболочки» за один шаг.
Попытка ответить конкретно на вопрос (по крайней мере, заголовок).
Вы также можете переименовать локальную ветвь, но отслеживаете старое имя на пульте дистанционного управления.
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
. Тем не менее, я очень обескураживаю это, ради безопасности вашего ума.
Если вы хотите использовать SourceTree (что я настоятельно рекомендую), вы можете щелкнуть правой кнопкой мыши по своей ветке и выбрать "Переименовать".
Поменять ветку локально довольно просто...
Если вы находитесь в ветке, для которой хотите изменить имя, просто сделайте это:
git branch -m my_new_branch
В противном случае, если вы используете master
или любую другую ветку, отличную от той, которую хотите изменить, просто выполните:
git branch -m my_old_branch my_new_branch
Кроме того, я создаю изображение ниже, чтобы показать это в действии в командной строке. В этом случае вы находитесь в master
ветке, например:
Чтобы переименовать текущую ветку (за исключением отдельного состояния HEAD), вы также можете использовать этот псевдоним:
[alias]
mvh = !sh -c 'git branch -m 'git rev-parse --abbrev-ref HEAD' $1'
Другой вариант - вообще не использовать командную строку. Клиенты Git GUI, такие как SourceTree, убирают большую часть синтаксической кривой обучения/боли, из-за которой такие вопросы, как этот, входят в число самых просматриваемых при переполнении стека.
В SourceTree щелкните правой кнопкой мыши любую локальную ветку на панели "Ветви" слева и выберите "Переименовать...".
Поскольку вы не хотите передавать ветку на удаленный сервер, этот пример будет полезен:
Допустим, у вас есть существующая ветка под названием "my-hot-feature", и вы хотите переименовать ее в "feature-15".
Во-первых, вы хотите изменить местное отделение. Это не может быть проще:
git branch -m my-hot-feature feature-15
Для получения дополнительной информации, вы можете посетить локально и удаленно переименование ветки в Git.
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
Примечание: последняя команда деструктивна и переименует вашу ветку, но вы потеряете старую ветку с этим именем и этими коммитами, потому что имена веток должны быть уникальными.
Если вы хотите изменить имя текущей ветки, запустите:
git branch -m [old_branch] [new_branch]
Если вы хотите удалить старую удаленную ветвь, запустите:
git push origin :[old_branch]
Если вы хотите удалить старую удаленную ветку и создать новую удаленную ветвь, запустите:
git push origin :old_branch new_branch
Простой способ сделать это:
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 GUI это не может быть намного проще. В графическом интерфейсе Git выберите имя ветки из раскрывающегося списка в диалоговом окне "Переименовать ветвь", созданном из пункта меню "Ветвь: переименовать", введите новое имя и нажмите "Переименовать". Я выделил, где найти выпадающий список.
git branch -m old_branch_name new_branch_name
или же
git branch --move old_branch_name new_branch_name
Всего два шага для репликации как на remote
так и на GitHub:
Шаг 1, git branch -m old_branchname new_branchname
Шаг 2 git push origin :old_branchname new_branchname
Переименовать ветку 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$
Все предыдущие ответы говорят о git branch -m
. Конечно, им легко управлять, но для меня может быть немного трудно запомнить другую команду Git. Поэтому я попытался выполнить работу командой, с которой был знаком. Да, вы можете догадаться.
Я использую git branch -b <new_branch_name>
. И если вы не хотите сохранять старую ветку сейчас, вы можете выполнить git branch -D <old_branch_name>
чтобы удалить ее.
Я знаю, что это может быть немного утомительно, но это легче понять и запомнить. Я надеюсь, что это полезно для вас.
В PhpStorm:
VCS → Git → Филиалы... → Локальные ветки → _your_branch_ → Переименовать
Если хотите:
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
git push -f --mirror
, тогда он переименует ветку на удаленном компьютере, но вы должны использовать этот метод только в том случае, если удаленный должен быть просто копией вашего текущего хранилища. Смотрите также этот вопрос: stackoverflow.com/questions/1526794/git-rename-remote-branch