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

git branch -m oldname newname

但这只是重命名分支的本地版本。我如何在GitHub上重命名一个?


当前回答

你不用终端也能做到。您只需要用新名称创建一个分支,然后删除旧名称。

Create a branch In your repository’s branch selector, just start typing a new branch name. It’ll give you the option to create a new branch: It’ll branch off of your current context. For example, if you’re on the bugfix branch, it’ll create a new branch from bugfix instead of master. Looking at a commit or a tag instead? It’ll branch your code from that specific revision. Delete a branch You’ll also see a delete button in your repository’s Branches page: As an added bonus, it’ll also give you a link to the branch’s Pull Request, if it has one.

我只是复制和粘贴这个内容从:创建和删除分支

其他回答

在Git分支中,运行:

git branch -m old_name  new_name

这将修改本地存储库中的分支名称:

git push origin :old_name new_name

这将把修改后的名称推到远程并删除旧的分支:

git push origin -u new_name

它设置本地分支来跟踪远程分支。

这就解决了问题。

以下是对我有效的方法:

首先创建新分支: Git推送github newname:refs/heads/newname 在GitHub网站上,进入设置并将默认分支更改为newname 删除oldname Git推送github——删除旧名

你不用终端也能做到。您只需要用新名称创建一个分支,然后删除旧名称。

Create a branch In your repository’s branch selector, just start typing a new branch name. It’ll give you the option to create a new branch: It’ll branch off of your current context. For example, if you’re on the bugfix branch, it’ll create a new branch from bugfix instead of master. Looking at a commit or a tag instead? It’ll branch your code from that specific revision. Delete a branch You’ll also see a delete button in your repository’s Branches page: As an added bonus, it’ll also give you a link to the branch’s Pull Request, if it has one.

我只是复制和粘贴这个内容从:创建和删除分支

以下命令在本地重命名分支,删除远程位置上的旧分支并推送新分支,设置本地分支跟踪新的远程:

git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch

如前所述,在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提到的。注释中的指针

注意,你可以结合这两个push操作: Git推送源: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命令中的位置参数在较旧的Git版本(2.8之前?)中是有问题的,因此别名可能会根据Git版本而有所不同。有关详细信息,请参阅此讨论。