Change a branch name in a Git repo
如何重命名Git回购中的现有分支?
我希望当前的分支机构有一个新名称。
- 接受一个答案@alex或者说为什么你不想接受它。
- @查理·帕克,这可能与这是亚历克斯唯一的问题有关,他可能从2011年2月3日21点29分开始就没有登录过。
- @你是说他可能出了什么事????!!!!!!!!!!!!!
- 对这一问题的高投票率的回答能被接受吗?
- 如何重命名本地Git分支的可能副本?
假设您当前在要重命名的分支上:
这记录在git-branch手册中,您可以使用
或
具体来说,命令是
1
| git branch (-m | -M) [] <newbranch> |
其中参数为:
1 2 3 4
| The name of an existing branch to rename.
<newbranch>
The new name for an existing branch. The same restrictions as for <branchname> apply. |
如果要重命名当前分支,是可选的。
- 或者,如果你不在的话。
- 此外,如果将旧分支推到远程,则可以使用git push origin :branchname删除它。这将允许您推送新的和删除旧的,本质上是在远程重命名它。
- @mipadi,它创建新的分支,而不删除前一个分支。
- git branch(-m-m)[]对我不起作用,导致语法错误。
- @Mohammedarif和-m一起,它重命名了旧的分支,因此删除了以前的分支。
- @如果这个命令对你不起作用,你可能会问一个新问题吗?无论是否有-m或-m选项,它都应该起作用。
- @理查德费恩,我提到的是米帕迪,实际上不是你说的。
- @Mohammedarif:使用-m标志,将other-branch重命名为renamed-other-branch。other-branch名称将不再存在。
- 它是@mipadi,这是写下评论的地方,我必须使用"git push origin:branchname"删除它。
- @Mohammedarif:当您重命名它时,它不会从任何远程设备中删除,只会从本地repo中删除。
如果您当前在要重命名的分支上:
否则:
1
| git branch -m old_name new_name |
您可以检查:
如您所见,只有本地名称更改了现在,要同时在远程中更改名称,必须执行以下操作:
1
| git push origin :old_name |
这将删除分支,然后使用新名称上载它:
1
| git push origin new_name |
来源:https://web.archive.org/web/20150929104013/http://blog.changecong.com:80/2012/10/rename-a-remote-branch-on-github
- 我认为这是正确的答案,Richard Feam的高投票回答只包括本地回购,这一个包括远程回购。
- 同意上面的评论,在我的案例中,这个答案更完整。另外,在完成了这个答案中提到的所有步骤之后,当我将额外的提交推到远程分支时,Git试图再次推到old_name分支。幸运的是,Git在命令行中还提供了一个补丁:git-branch --unset-upstream。此后,所有推送的提交都转到了new_name远程分支。
- 当心,这样你就失去了使用git push的能力,因为你收到了警告,而Your branch is based on 'old_name, but the upstream is gone.a git push -u origin new_name解决了这个问题。