在github中重命名一个分支

我刚刚重命名我的本地分支使用

git branch -m oldname newname 

但是这只能重命名分支的本地版本。 我如何重新命名github中的一个?

如前所述,删除Github上的旧的重新推送,虽然使用的命令比必要的更冗长:

 git push origin :name_of_the_old_branch_on_github git push origin new_name_of_the_branch_that_is_local 

简单。 有一点解剖命令,git push命令本质上是:

 git push <remote> <local_branch>:<remote_branch> 

因此,在没有指定local_branch的情况下执行push操作本质上意味着“从我的本地存储库中取任何东西,并使其成为远程分支”。 我一直认为这是完全可笑的,但它是这样做的方式。

编辑:作为Git 1.7有删除远程分支的替代语法:

 git push origin --delete name_of_the_remote_branch 

编辑:如在@注释中提到的@ void.pointer

请注意,您可以合并2个推送操作:

git push origin :old_branch new_branch

这将同时删除旧的分支和推新的分支。

只要删除旧的分支,并创build一个新的。

示例(仅重命名远程分支):

 git push origin :refs/heads/oldname git push origin newname:refs/heads/newname 

你也可能应该重命名本地分支,并更改设置的推/拉。

以下命令为我工作:

 git push origin :old-name-of-branch-on-github git branch -m old-name-of-branch-on-github new-name-for-branch-you-want git push origin new-name-for-branch-you-want 

我已经find3个命令如何改变你的git分支名称,而这些命令是更快的方法

 git branch -m old_branch new_branch # Rename branch locally git push origin :old_branch # Delete the old branch git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote 

如果你需要一步一步的阅读这个伟大的文章

如何重命名Git本地和远程分支

你可以做到这一点,没有terminal,你只需要创build一个新的名称的分支,并删除旧的。 你可以使用这个post来做到这一点。

https://github.com/blog/1377-create-and-delete-branches

这是什么对我有用:

1.)首先创build新分支:git push github newname:refs / heads / newname

2.)在github网站上,转到设置并将默认分支更改为新名称

3.)删除旧名git push github – 删除旧名

  1. 下载Atlassian SourceTree (免费)。
  2. 导入存储库的本地克隆。
  3. 右键点击你的分支重新命名,在侧边栏。 从上下文菜单中select“重命名分支…”,然后重命名它。
  4. 推到原点。

本文展示如何做到这一点真正简单。
1.要重命名本地Git分支,我们可以使用Git branch -m命令修改名称:
git branch -m feature1 feature2
2.如果你只是在寻找命令重命名远程Git分支,这是“
git push -u origin feature2:feature3
在你做这个之前检查你没有标签的分支。 你可以用git tag来做到这一点。

另一种方法是重命名以下文件

  1. 导航您的项目目录
  2. .git/refs/head/[branch-name]重命名为.git/refs/head/new-branch-name
  3. .git/refs/remotes/[all-remote-names]/[branch-name].git/refs/remotes/[all-remote-names]/new-branch-name

重命名您的本地PC 原始站点/远程服务器的头部和远程控制器

分支现在被重命名(本地和远程!)


注意

如果你当前的分支名称包含斜线/ ),git会创build如下所示的目录:

当前分支名称: "awe/some/branch"

  • .git/refs/head/awe/some/branch
  • .git/refs/remotes/[all-remote-names]/awe/some/branch

希望分支名称: "new-branch-name"

  1. 导航您的项目目录
  2. .git/refs/*/awe/some/
  3. 把它放在.git/refs/head/
  4. .git/refs/remotes/*/awe/some/
  5. 把它们放在.git/refs/remotes/*/
  6. 将所有被branch文件重命名为new-branch-name
  7. 检查目录和文件结构是否如下所示:
    • .git/refs/head/new-branch-name
    • .git/refs/remotes/[all-remote-names]/new-branch-name
  8. 在所有远程来源/服务器上执行相同操作(如果存在)
    • info :在远程服务器上,通常不会有refs / remotes / *目录,因为你已经在远程服务器上了)(也许在高级的gitconfiguration中,这可能是可能的,但我从来没有见过)

现在awe/some/branchawe/some/branch改名为new-branch-name (本地和远程!)

分支名称中的目录被删除。


信息:这种方式可能不是最好的,但对于其他方式可能有问题的人来说,它仍然适用

就我而言,我需要一个额外的命令
git branch --unset-upstream
让我的重命名的分支推上origin newname

(为了便于打字),我首先git checkout oldname
然后运行以下内容:

git branch -m newname
git push origin :oldname git push origin --delete oldname
git branch --unset-upstream
git push -u origin newname 或者 git push origin newname

这个额外的步骤可能只是必要的,因为我(倾向于)通过git push -u origin oldname在我的分支上设置远程跟踪。 这样当我oldname时,我随后只需要键入git push而不是git push origin oldname

如果我git branch --unset-upstream git push origin newbranch之前使用命令git branch --unset-upstream ,那么git会重新创build oldbranch并将newbranch推到origin oldbranch – 这 oldbranch我的意图。