我怎样才能对 GitHub 项目进行第二次分叉?

How can I make a second fork of a GitHub project?

我想分叉一个 github 项目来解决几个问题,然后发送拉取请求。

我 运行 遇到的问题是我已经分叉该项目以使其适应另一个用户群。

是否可以创建第二个分支?如果是这样,如何?

当我现在尝试分叉时,它只会将我带到之前创建的分叉。

I mean that I could just commit and push without making a pull request, but I want to do it the offical way and I want somebody else to review the changes before I push to a public project.

GitHub 不需要从分叉提交拉取请求; they work within a single repository as well:

Pull requests are especially useful in the fork & pull model because they provide a way to notify project maintainers about changes in your fork. However, they're also useful in the shared repository model where they're used to initiate code review and general discussion about a set of changes before being merged into a mainline branch.

没有什么能阻止您创建拉取请求,即使您在技术上不需要这样做。这通常被认为是最佳实践,GitHub's own Flow model 主要基于拉取请求。

Creating a pull request 在单个存储库中与从复刻创建一个存储库非常相似:

  1. 创建一个功能分支并将您的工作推送到 GitHub
  2. 上的该分支
  3. 在 GitHub 网络 UI 中,切换到您的功能分支
  4. 单击 "Compare" 并查看按钮

除非您使用两个不同的 GitHub 帐户,否则不可能有同一个 GitHub 项目的两个分支。

所以:

  1. 创建一个单独的 GitHub 帐户(并验证电子邮件)

  2. 分叉 项目

  3. 邀请您的主 GitHub 帐户作为 "Collaborator"(来自 设置)

您可能需要添加额外的步骤,即使用新的 GitHub 帐户创建一个组织并邀请您的主 github 帐户作为该组织的所有者(同时确保您的新分支是在那个新组织中)。这将允许您执行诸如自动部署到连接到您的主 GitHub 帐户的 Heroku 应用程序之类的操作。

为什么我们不能有多个分叉???

github 手册推荐的最佳方法是使用命令行 git,镜像克隆你的 repo 并将其推送到你的 github。

https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/duplicating-a-repository

如果您更喜欢 GitHub Web 界面而不是命令行,一个 GUI 友好的解决方法是创建一个新组织并分支到该新组织。

我能想到的另一种 GUI 方法是使用 repo 的设置将 fork 声明为模板 repo,这样您就可以根据需要创建任意数量的 fork。

诀窍是 而不是 使用 master 分支来创建拉取请求。然后你不需要创建多个分支,因为你可以根据需要创建任意数量的分支,并独立地对每个分支发出拉取请求。

给定一个干净的分叉回购,创建一个专用分支并将该分支用于拉取请求。

您可以从网络创建分支UI(虽然不是很明显)。

单击分支选择下拉菜单,在输入字段中键入新的分支名称,然后您将看到 clickable link Create branch: <new-branch-name>如下图。棘手的 UI 部分是您应该单击 " 创建分支:xyz..." 可能不是很明显 —它没有显示为按钮或 hyperlink,也没有迹象表明这是一个 可点击 link。此外,在您输入搜索框之前,没有任何提示可以创建分支——任何人都可能认为搜索框专门用于搜索分支,而不是用于创建他们。

如果您已经直接在分叉的 master 分支中进行了更改,请考虑将这些更改移至专用分支并将 master 分支硬重置为原始远程分支,以保持其清洁用于与上游仓库同步。

另请参阅: