相关链接:
- [重命名本地和远程 Git 仓库的主分支](link1) - [如何同时重命名 Git 的本地和远程分支名称?](link2)
重命名当前分支:
git branch -m <newname>
在指向任何分支的情况下重命名分支:
git branch -m <oldname> <newname>
-m
的缩写是--move
。
推送本地分支并重置上游分支:
git push origin -u <newname>
删除远程分支:
git push origin --delete <oldname>
创建一个 git rename
别名的方法:
git config --global alias.rename 'branch -m'
如果在Windows或另一个不区分大小写的文件系统上,仅有名称大小写更改,请使用-M
。否则,Git会抛出“分支已存在”错误。
git branch -M <newname>
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 push origin HEAD:<oldname>
。 - techkuz以下是重命名分支的步骤:
git branch -m <new_name>
git push origin :<old_name>
git push origin <new_name>:refs/heads/<new_name>
编辑(2017年12月01日): 确保运行git status
命令并检查新创建的分支是否指向自己的引用,而不是旧的分支。如果发现旧分支的引用,请使用以下命令取消上游关联:
git branch --unset-upstream
git branch --unset-upstream
如何解决你提到的未同步状态问题? - Chris Halcrow当你的分支完成后,重命名分支将会很有用。随着新的内容的到来,你希望在同一分支上开发而不是删除它并创建一个新的分支。
根据我的经验,在Git中重命名本地和远程分支需要执行以下步骤。
引用自Multiple States - Rename a local and remote branch in 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'
。 - Antogit push origin :old-name new-name
时遇到了问题,对吗? - trungk18如果它是您当前的分支,请执行以下操作:
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
old_name
分支是默认分支,您可能会收到错误消息,如“项目的默认分支不能被删除”。在这种情况下,您需要先 git push
创建 new_name
分支,将其更改为默认分支,然后再 git push
删除 old_name
分支。 - Paulo Merson我不明智地给一个分支起了一个以连字符开头的名字,然后切换到了主分支。 我不想 删除 分支,因为里面还有工作。
这两种方法都没有用:
git checkout -dumb-name
git checkout -- -dumb-name
"
s, '
s 和 \
s 也无济于事。 git branch -m
也不行。
下面是我最终解决问题的方法。进入你的工作副本的 .git/refs/heads 目录,找到文件名“-dumb-name”,获取该分支的哈希值。 然后使用以下命令检出它,创建一个新的名称合理的分支,并删除旧的分支。
git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name
checkout
该名称,但可以删除它时,我会认为这是git中的一个错误。 - U. Windlgit branch -m <new_name>
这会为您正在使用的当前分支设置新名称。
git branch -m <old_name> <new_name>
在这里,您需要提供旧分支名称和新分支名称。
只需三个步骤即可在远程和GitHub上复制更改名称:
第一步 git branch -m old_branchname new_branchname
第二步 git push origin :old_branchname new_branchname
第三步 git push --set-upstream origin new_branchname
git push -f --mirror
,它将重命名远程分支,但只有在远程仓库要成为当前仓库的副本时才应使用此方法。还请参阅此问题:https://dev59.com/YnI_5IYBdhLWcg3wF_F3 - siridepush.default
的配置方式。默认设置(matching
)会将其推送到与名称匹配的远程分支。你需要执行git push origin <newname>:<oldname>
否则你会创建一个新的远程分支。然而,如果push.default
设置为upstream
,那么你可以使用push origin head
并且东西将被推到远程仓库中的旧名称。 - Erin Stanfill-m
选项的完整名称是--move
,例如,git branch --move master
将当前分支重命名为“master”。 - robenkleenegit push origin :<old_name> <new_name>
命令来更新远程分支名称。 - David Meza