How do I rename both a Git local and remote branch name?
我有四个分支,如master->origin/regacy、featurea->origin/featurea。如你所见,我输入了错误的名字。
因此,我要重命名远程分支名称(origin/regacy→origin/legacy或origin/master)
我尝试下面的命令:
1 | git remote rename regacy legacy |
但Git控制台向我返回了一条错误消息。
1 | error : Could not rename config section 'remote.regacy' to 'remote.legacy' |
我怎样才能解决这个问题?
不能直接重命名远程分支。你必须删除它,然后重新推它。
重命名分支1 2 3 4 5 6 7 8 9 10 11 | # Rename the local branch to the new name git branch -m <new_name> # Delete the old branch on remote - where <remote> is, for example, origin git push <remote> --delete old_name # Push the new branch to remote git push <remote> new_name # Reset the upstream branch for the new_name local branch git push <remote> -u new-name |
当您使用
git remote rename legacy legacy
但它不会按照您的想法执行;它将重命名本地配置远程名称,而不是远程分支。
注释Git服务器可能允许您使用Web界面或外部程序(如sourcetree等)重命名Git分支,但您必须记住,在Git中,所有工作都是在本地完成的,因此建议在工作中使用上述命令。
如果您错误地命名了一个分支并将其推送到远程存储库,请按照以下步骤重命名该分支(基于本文):
重命名本地分支:
如果您在要重命名的分支上:
git branch -m new-name 如果您在不同的分支机构:
git branch -m old-name new-name
删除
为新名称本地分支重置上游分支:切换到分支,然后:
似乎有一个直接的方法:
If you really just want to rename branches remotely (without renaming any local branches at the same time) you can do this with a single command like
git push /:refs/heads/ : Renaming branches remotely in Git
有关更多详细信息,请参阅原始答案。
也可以按以下方式进行。
首先重命名本地分支,然后重命名远程分支。
重命名本地分支:
如果登录到另一个分支,
1 | git branch -m old_branch new_branch |
如果登录到同一个分支,
1 | git branch -m new_branch |
重命名远程分支:
1 2 3 | git push origin :old_branch // Delete the remote branch git push --set-upstream origin new_branch // Create a new remote branch |
即使不通过以下三个简单步骤重命名本地分支,也可以做到这一点:
没有直接的方法,
重命名本地分支,
我现在的分公司是硕士
更名为master的新名称。
删除远程分支,
将重命名的分支推送到远程,
就是这样…