小编典典

重命名 GitHub 中的分支

all

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

git branch -m oldname newname

但这只会重命名分支的本地版本。如何重命名GitHub上的那个?


阅读 130

收藏
2022-03-25

共1个答案

小编典典

如前所述,删除 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
的情况下进行推送基本上意味着“从我的本地存储库中获取任何内容,并将其设为远程分支”。我一直认为这完全是笨拙的,但它就是这样做的。

Git
1.7
开始,有一种用于删除远程分支的替代语法:

git push origin --delete name_of_the_remote_branch

正如@void.pointer 在评论中提到的

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

git push origin :old_branch new_branch

这将删除旧分支并推送新分支。

这可以变成一个简单的别名,将远程、原始分支和新分支名称作为参数,在~/.gitconfig

[alias]
    branchm = "!git branch -m $2 $3 && git push $1 :$2 $3 -u #"

用法:

git branchm origin old_branch new_branch

请注意,shell 命令中的位置参数在较旧(2.8 之前?)版本的 Git 中存在问题,因此别名可能会根据 Git
版本而有所不同。

2022-03-25