在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来做到这一点。
这是什么对我有用:
1.)首先创build新分支:git push github newname:refs / heads / newname
2.)在github网站上,转到设置并将默认分支更改为新名称
3.)删除旧名git push github – 删除旧名
- 下载Atlassian SourceTree (免费)。
- 导入存储库的本地克隆。
- 右键点击你的分支重新命名,在侧边栏。 从上下文菜单中select“重命名分支…”,然后重命名它。
- 推到原点。
本文展示如何做到这一点真正简单。
1.要重命名本地Git分支,我们可以使用Git branch -m命令修改名称:
git branch -m feature1 feature2
2.如果你只是在寻找命令重命名远程Git分支,这是“
git push -u origin feature2:feature3
在你做这个之前检查你没有标签的分支。 你可以用git tag
来做到这一点。
另一种方法是重命名以下文件 :
- 导航您的项目目录
- 将
.git/refs/head/[branch-name]
重命名为.git/refs/head/new-branch-name
- 将
.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"
- 导航您的项目目录
- 从
.git/refs/*/awe/some/
- 把它放在
.git/refs/head/
。 - 从
.git/refs/remotes/*/awe/some/
- 把它们放在
.git/refs/remotes/*/
。 - 将所有被
branch
文件重命名为new-branch-name
。 - 检查目录和文件结构是否如下所示:
-
.git/refs/head/new-branch-name
-
.git/refs/remotes/[all-remote-names]/new-branch-name
-
- 在所有远程来源/服务器上执行相同操作(如果存在)
- info :在远程服务器上,通常不会有refs / remotes / *目录,因为你已经在远程服务器上了)(也许在高级的gitconfiguration中,这可能是可能的,但我从来没有见过)
现在awe/some/branch
从awe/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
我的意图。