关于存储库:如何重命名git本地和远程分支名称?

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'

我怎样才能解决这个问题?


Enter image description here

不能直接重命名远程分支。你必须删除它,然后重新推它。

重命名分支

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

Enter image description here

重要注意事项:

当您使用git branch -m时(move),git也在用新名称更新您的跟踪分支。

git remote rename legacy legacy

git remote rename正在试图更新配置文件中的远程部分。它将使用给定的名称将远程重命名为新名称,但在您的情况下,它找不到任何名称,因此重命名失败。

但它不会按照您的想法执行;它将重命名本地配置远程名称,而不是远程分支。

注释Git服务器可能允许您使用Web界面或外部程序(如sourcetree等)重命名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


  • 似乎有一个直接的方法:

    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

    即使不通过以下三个简单步骤重命名本地分支,也可以做到这一点:

  • 转到GitHub中的存储库
  • 从要重命名的旧分支创建新分支
  • 删除旧分支

  • 没有直接的方法,

  • 重命名本地分支,

    我现在的分公司是硕士

    更名为master的新名称。

  • 删除远程分支,

    git push origin --delete master来源是远程名称

  • 将重命名的分支推送到远程,

    git push origin master_renamed

  • 就是这样…