如何重命名远程git分支名称
我有4个braches,像master – > origin / regacy,featureA – > origin / FeatureA。
正如你在上面看到的,我input了一个错误的名字。
所以我想重命名一个远程分支的名字(origin / regacy => origin / legacy或origin / master)
我尝试下面的命令。
git远程重命名regacy遗产
但是,git控制台向我反映了错误消息。
错误:无法重命名configuration节'remote.regacy'为'remote.legacy'
我怎么解决这个问题?
您不能直接重命名远程分支。 你必须删除它,然后重新推它。
就像是 :
#rename the local branch to the new name git branch -m old_name new_name #delete the old branch on remote - where <remote> is eg. origin git push <remote> --delete old_name #push the new branch to remote git push <remote> new_name
重要的提示 :
当你使用git branch -m
(移动)时,git也在用你的新名字更新你的跟踪分支。
git remote rename regacy legacy
git remote rename
是试图更新您的configuration文件中的远程部分。 它将使用给定名称将远程名称重新命名为新名称,但在您的情况下,它找不到任何名称,因此重命名失败。
但它不会做你的想法,它会重命名您的本地configuration远程名称,而不是远程分支。
如果您错误地命名了分支并将其推送到远程存储库,请按照以下步骤重新命名该分支( 基于本文 ):
-
重命名您的本地分支:
-
如果你在你想重命名的分支上:
git branch -m new-name
-
如果你在不同的分支上:
git branch -m old-name new-name
-
-
删除
old-name
远程分支并推送new-name
本地分支 :
git push origin :old-name new-name
-
重置新名称本地分支的上游分支 :
切换到分支,然后:
git push origin -u new-name
看来有一个直接的办法:
如果你真的只想远程重命名分支(不同时重命名任何本地分支),你可以用一个单一的命令
git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>
请参阅原始答案了解更多详情