在Git仓库中更改分支名称

338

如何在 Git 仓库中重命名现有分支?

我想要将当前分支更改为新名称。


3
接受 @Alex 的答案,或者解释为什么你不想接受它。 - Charlie Parker
2
@CharlieParker 这可能与事实有关,即这是Alex的唯一问题,并且他自那时起可能没有登录过:“最后查看时间为2011年2月3日21:29”。 - yellow-saint
15
@J.B. OMG你是在说他可能出了什么事情吗???!!!!!!!!! - abbood
1
这个得到高票的答案可以被接受吗? - Steve Chambers
可能是如何重命名本地Git分支?的重复问题。 - Vineet Jain
这个回答解决了你的问题吗?[如何重命名 Git 的本地和远程分支名称?] (https://dev59.com/GF0a5IYBdhLWcg3wNWXA) - Ricardo
2个回答

507

假设您当前在要重命名的分支上:

git branch -m newname

你可以通过查看 git-branch 的手册来了解这些信息,手册中有详细介绍。

man git-branch
或者
git help branch

具体来说,该命令是:

git branch (-m | -M) [<oldbranch>] <newbranch>

其中参数为:

   <oldbranch>
       The name of an existing branch to rename.

   <newbranch>
       The new name for an existing branch. The same restrictions as for <branchname> apply.

<oldbranch>是可选的,如果您想重命名当前分支。


11
如果你不是当前所在分支,使用命令 git branch -m other-branch renamed-other-branch 进行重命名。请注意,不要改变原来的意思。 - mipadi
33
如果你已经把旧分支推到远程仓库,你可以使用命令 git push origin :branchname 来删除它。这样就能够推送新分支并删除旧分支,从而在远程仓库中实现重命名。请注意不要改变原来的意思。 - Jonathan
1
@mipadi,它创建了新的分支,不会删除之前的分支。 - Mohammad Arif
git branch (-m | -M) [<oldbranch>] <newbranch>对我来说不起作用,会出现语法错误。 - Mohammad Arif
@MohammedArif 如果命令对您不起作用,也许您可以提出一个新的问题?无论是否使用-m/-M选项,它都应该能够正常工作 :) - Richard Fearn
显示剩余5条评论

218

如果您目前所在的分支是想要重命名的分支:

git branch -m new_name 

否则:

git branch -m old_name new_name 

你可以检查:

git branch -a

如您所见,只有本地名称更改了。 现在,要同时更改远程名称,您需要执行以下操作:

git push origin :old_name

这将删除该分支,然后使用新名称上传它:

git push origin new_name

来源: https://web.archive.org/web/20150929104013/http://blog.changecong.com:80/2012/10/rename-a-remote-branch-on-github


16
我认为这是正确的答案,Richard Feam 得到高票的答案只涵盖了本地仓库,而这个答案涵盖了远程仓库。 - user1145404
5
同意上面的评论,对我的情况这个答案更加完整。此外,在我完成了这个答案中提到的所有步骤后,当我推送额外的提交到远程分支时,git 尝试再次推送到 old_name 分支。幸运的是,git 在命令行中也提供了一个修复方法:git-branch --unset-upstream。在执行此命令后,所有推送的提交都被发送到 new_name 远程分支。 - Hans Roerdinkholder
3
请注意,这种方法会使你失去使用 git push 的能力,因为你会收到一个警告,提示说“你的分支基于 'old_name',但上游已经不存在了。”使用 git push -u origin new_name 可以解决这个问题。 - netalex
这是完美的答案,可以处理远程和本地分支重命名,非常感谢。 - Shreyasikhar26

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接