如何重命名远程git分支名称

我有4个braches,像master - > origin / regacy,featureA - > origin / FeatureA。

正如你在上面看到的,我输入了一个错误的名字。

所以我想重命名远程分支名称(origin / regacy => origin / legacy或origin / master)

我尝试下面的命令。

git远程重命名regacy遗产

但是,git控制台向我反映了错误消息。

错误:无法将配置节'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是试图更新您的配置文件中的远程节。 它会将给定名称的远程名称重新命名为新名称,但在您的情况下,它没有找到任何名称,因此重命名失败。

它不会做你的想法,它会重命名你的本地配置远程名称而不是远程分支。


注意 Git服务器可能允许您使用Web界面或外部程序(如Sourctree等)重命名git分支,但是您必须记住,在git中,所有工作均在本地完成,因此建议将上述命令用于工作。


如果您错误地命名了分支并将其推送到远程存储库,请按照以下步骤重新命名该分支(基于本文):

  • 重命名您的本地分支:

  • 如果你在你想重新命名的分支上:
    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>

    https://stackoverflow.com/a/21302474/2586761

    查看原始答案以获取更多详细信息

    链接地址: http://www.djcxy.com/p/2609.html

    上一篇: How to rename a remote git branch name

    下一篇: Change a branch name in a Git repo