我刚刚使用重命名了我的本地分支
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
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 这将删除旧分支并推送新分支。
请注意,您可以组合 2 个推送操作:
git push origin :old_branch new_branch
这将删除旧分支并推送新分支。
这可以变成一个简单的别名,将远程、原始分支和新分支名称作为参数,在~/.gitconfig:
~/.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 版本而有所不同。