如何在GitHub网站上重命名分支?

56

我不知道如何运行命令行。我没有相应的环境。

因此,我试图在GitHub网站上重命名一个分支。默认情况下,它被命名为patch-1

在网站上是否有可能将其重命名?


1
不,其实不是。如果没有命令行或图形化的版本控制系统环境,你在Github上的其他功能如合并冲突也会受到限制。 - nanofarad
只需使用不同的名称将其推回去,然后删除原始文件即可。 - Tony Hopkinson
我曾考虑过这样做,但我在这里询问后得知我们无法真正删除一个分支:http://stackoverflow.com/questions/23850490/github-delete-branch-even-after-made-commits-to-it/23850519?noredirect=1#23850519 - Noitidart
1
自2021年1月起,官方已正式支持。请参见我的下面的答案 - VonC
7个回答

30

我只使用GitHub网站,而没有下载任何代码到我的笔记本电脑。

解决方案看起来与@swcool的相同,但我想补充一下关于默认分支的内容。
在我的情况下,重命名分支的名称不存在。

  1. 更改默认分支(为要重命名的旧分支)

  2. 创建新分支(带有新名称)

    此操作将复制默认分支(具有旧名称的分支)的所有内容到新分支(具有新名称)。此时,您将拥有两个具有相同代码的分支。

  3. 更改默认分支(为具有新名称的新分支)

  4. 删除旧分支


感谢您提供这些详细信息! - Noitidart
1
在第三步,将默认分支更改回“master”不是更好的想法吗?还是我漏掉了什么? - dev
@edjroot - 这取决于您要重命名哪个分支。例如,如果您想将“master”分支重命名为“main”,则需要将默认分支更改为“main”。诚然,这并没有在问题中提到,但对于任何阅读有关重命名和更改分支的人来说,这是一个有用的细节。 - Myles

26

我认为您可以这样做,使用新名称创建一个新的分支,然后在GitHub上删除旧的分支。

更多细节请参见这里


34
那其实不是问题,对吧? - Kutzi
3
@Kutzi,有点是这样的。您可以从想要更改的分支创建一个新分支。 - shangxiao
3
如果分支有一个开放的 PR,并且您希望保留在该 PR 上留下的讨论,那么这个答案就不是有用的。 - Eric Fulmer
3
现在您可以在打开的 PR 中更改目标分支。因此,我认为这仍然是一种选择。 - mrpasqal
2
并且这仍然会导致任何 Github 问题/评论中指向分支代码的链接都无法使用,所以不,这不是答案。这只是一个解决方法,但真正的答案是“你不能重命名分支,因为 Github 不支持,但你可以[然后是这个答案]”。 - Mike 'Pomax' Kamermans

16
无法通过Github网站重命名分支。您需要按照以下步骤操作-
设置您的Git环境
请按照以下步骤操作- https://help.github.com/articles/set-up-git 本地和Github上重命名分支
使用以下命令进行分支重命名:
git branch -m 旧分支名称 新分支名称 # 在本地重命名分支 git push origin :旧分支名称 # 删除旧分支 git push --set-upstream origin 新分支名称 # 推送新分支,设置本地分支跟踪新远程分支

我有GitBash,我正在尝试使用它,是否可以在Bash中完成这个操作? - Noitidart
因为第二个链接的链接失效而被downvote了。特别是当它是第三方网站时,请包含所有步骤。 - mpag
1
固定和添加步骤 - Nitish Dhar

8
如果您不想安装Git,可以克隆存储库,本地重命名分支并将其推送回GitHub,也可以使用 GitHub API引用
  • create a new branch where the old one is:

    POST /repos/:owner/:repo/git/refs
    
    {
      "ref": "refs/heads/newBranchName",
      "sha": "<SHA1 of old branch>"
    }
    
  • delete the old branch:

    DELETE /repos/:owner/:repo/git/refs/heads/oldBranchName
    
那样的话,您将无需在本地使用git就可以“重命名”(创建+删除)分支。
并且,正如评论下方user3533716所指出的那样,使用GitHub API列出分支来获取这些分支的SHA1。
GET /repos/:owner/:repo/branches

SHA1 是什么?旧分支名称吗? - Nakilon
无法复制主文件,提示“404未找到”错误:https://lh5.googleusercontent.com/-9WxBOLc--yk/VCIBf46NGhI/AAAAAAAATTI/rQArVKCnjmo/s0/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%2B%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%2B2014-09-24%2B%D0%B2%2B3.25.27.png - Nakilon
@Nakilon 是的,旧分支的SHA1值为:git rev-parse <旧分支名称> - VonC
@Nakilon,您需要进行身份验证才能成功进行此POST请求。未经身份验证将返回404(“未找到”)错误。请参阅https://gist.github.com/caspyin/2288960。 - VonC
要列出分支并获取SHA1,请使用:GET /repos/:owner/:repo/branches - user3533716
显示剩余2条评论

7
自2021年1月19日起,您现在可以直接在github.com上重命名分支:

支持重命名现有分支:

您现在可以从Web中重命名任何分支,包括默认分支。

分支重命名对话框-- https://i2.wp.com/user-images.githubusercontent.com/2503052/105069955-a231fa80-5a50-11eb-982c-a114c9c44c57.png?ssl=1

如果您一直在等待将默认分支从master更改为main,我们现在建议使用此功能进行更改。

当重命名分支时:

  • 针对已重命名分支的开放拉取请求和草稿发布将自动重新定位
  • 显式引用已重命名分支的分支保护规则将更新

注意:需要管理员权限才能重命名默认分支,但具有写入权限即可重命名其他分支。

为了帮助用户尽可能无缝地进行更改:

  • 我们将在存储库主页上向贡献者、维护人员和管理员显示一条通知,其中包含更新其本地存储库的说明
  • 旧分支的Web请求将重定向
  • REST API调用将返回“永久移动”的HTTP响应
  • 会向推送到旧分支的Git命令行用户显示信息消息

这个变化是GitHub正在做出的支持想要重命名默认分支的项目和维护者的许多变化之一。

除非管理员明确进行更改,否则分支名称不会更改,但此新的重命名功能应显着减少需要更改分支名称的项目的中断。

要了解有关我们所做的更改的更多信息,请参见github / renaming

要了解更多信息,请参见重命名分支.


3
要在 Github 网站上重命名分支,只需进入您的存储库主页,单击“分支”所在位置即可。

enter image description here

然后,找到你感兴趣的分支,点击铅笔按钮。

enter image description here

从那里,你可以重命名你的分支。 在这里输入图片描述

-2

如果你想要一个基于GUI的解决方案 - 下载Git客户端“GitKraken”。它支持通过右键单击分支名称并选择“重命名[分支名称]”来从UI中执行此操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接