我刚刚重命名了我的本地分支使用
git branch -m oldname newname
但这只是重命名分支的本地版本。我如何在GitHub上重命名一个?
我刚刚重命名了我的本地分支使用
git branch -m oldname newname
但这只是重命名分支的本地版本。我如何在GitHub上重命名一个?
当前回答
下载Atlassian Sourcetree(免费)。 导入存储库的本地克隆。 在侧边栏中右键单击要重命名的分支。从上下文菜单中选择“Rename branch…”,并重命名它。 推到原点。
其他回答
在GitHub端,您可以使用新的(2021年1月)“支持重命名现有分支”(受保护的分支只能由管理员重命名,见末尾)
跟随本教程:https://docs.github.com/en/github/administering-a-repository/renaming-a-branch
参见“如何在GitHub网站上重命名分支?”。
这是一个更好的方法,因为以这种方式重命名分支(在github.com上)将:
Re-target any open pull requests Update any draft releases based on the branch Move any branch protection rules that explicitly reference the old name Update the branch used to build GitHub Pages, if applicable Show a notice to repository contributors, maintainers, and admins on the repository homepage with instructions to update local copies of the repository Show a notice to contributors who git push to the old branch Redirect web requests for the old branch name to the new branch name Return a "Moved Permanently" response in API requests for the old branch name
2021年12月更新:
Restrict renaming protected branches to admins Now, only admins can rename branches that are protected by branch protection rules. GitHub allows repository collaborators to rename every branch in a repository, with the exception of the default branch. When a collaborator renames a branch, any non-wildcard branch protection rules that apply to that branch are also changed to match the branch's new name. Because only admins can modify branch protection rules, renaming of a protected branch is now limited to admin users. For more information, visit Renaming a branch and Managing a branch protection rule.
简单三步
Git push origin head Git branch -m old-branch-name new-branch-name Git push origin head
你不用终端也能做到。您只需要用新名称创建一个分支,然后删除旧名称。
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/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和源/远程服务器上的头和远程。
分支现在重命名(本地和远程!)
注意
如果你当前的branch-name包含斜杠(/),Git会像这样创建目录:
当前分支名称:"awe/some/branch"
. /文献/头/敬畏/一些/分支 . /文献/遥控器/ [all-remote-names] /敬畏/一些/分支
祝愿分支-name: "new-branch-name"
导航您的项目目录。 从.git/refs/*/awe/some/中复制分支文件。 把它放在。git/refs/head/中。 从所有的。git/refs/remotes/*/awe/some/中复制分支文件。 把它们放在。git/refs/remotes/*/中。 将所有复制的分支文件重命名为new-branch-name。 检查目录和文件结构现在看起来是否像这样:
. / /头/ new-branch-name。参考文献 . /文献/遥控器/ [all-remote-names] / new-branch-name
对所有远程源/服务器(如果存在的话)执行同样的操作
信息:在远程服务器上通常没有refs/remotes/*目录,因为你已经在远程服务器上;)(好吧,也许在高级Git配置中这是可能的,但我从未见过)
分支现在从awe/some/ Branch重命名为new-branch-name(本地和远程!)
branch-name中的目录被移除。
信息:这种方法可能不是最好的,但它仍然适用于那些可能对其他方法有问题的人
我找到了三个关于如何更改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本地和远程分支