如何在GitHub上更改基础分支?

19

我已经复刻了一个存储库以创建一个新项目。这个新项目现在是独立的,我想将 基础 fork 默认更改为 头部 fork 来创建PR,以避免错误。

输入图像描述

如何在GitHub上实现这个操作?


1
那是不可能的。 - Philippe
如何更改 GitHub 拉取请求的默认基础分支? - Adam Spiers
4个回答

10

如果你想让这个项目变成你自己的,有两种方式。

正确的方法:

联系GitHub支持。这是正确的方式,也是最好的方式,因为他们通常会在几个小时内回复。(关于forks的信息,请查看forks

不太正确的方法:

创建一个新的存储库,并从fork的存储库中添加内容。

  • 步骤1:git clone --bare https://github.com/Your/<Forked Repository>.git
  • 步骤2:转到您的github帐户并删除fork的存储库。
  • 步骤3:创建一个同名的新存储库
  • 步骤4:cd <Forked Repository>/
  • 步骤5:git push --mirror

8
如果您想“取消关联”您的分支与原始上游存储库,使得(a)它不再显示为上游项目的“分支”,并且(b)默认情况下拉取请求将针对您自己的主分支而不是上游主分支,则可以:
  1. 确保您本地有完整的存储库副本。
  2. 在Github上删除项目。
  3. 使用相同的名称在Github上重新创建项目。
  4. 将本地存储库推送到Github。
这样就完成了。您将不再有提交针对上游项目的拉取请求的选项,但也许这正是您想要的结果。另一种替代上述步骤的方法是简单地创建一个具有名称的项目,并将您的代码推送到那里。保留您的派生项目将保留您在将来需要提交PR时向上游提交PR的能力。

2
如果该分支已经存在问题/拉取请求/维基页面,则这不是一个理想的解决方案。 - Adam Spiers

3
这个解决方案保留了原始存储库中的所有内容,包括提交历史记录、分支等等。此外,这不需要您在推送新存储库之前删除原始存储库,因此如果您的计算机出现故障,您不会丢失任何东西 :)
如果您查看GitHub项目的设置,将会看到一个部分:enter image description here
按照“duplicate the repository”的链接,我们来到了这里,告诉我们该做什么。
我在这里列出了步骤,但是该页面上还有其他选项可供查看。

要复制存储库而不是派生存储库,可以运行特殊的克隆命令,然后将其镜像推送到新存储库。

第一步:在GitHub上创建新存储库。

创建另一个用于新复制存储库的存储库。

第二步:创建存储库的裸克隆

$ git clone --bare https://github.com/exampleuser/old-repository.git

步骤三:将镜像推送到新仓库

$ cd old-repository.git
$ git push --mirror https://github.com/exampleuser/new-repository.git

步骤4:删除您在步骤2中创建的临时本地存储库。

$ cd ..
$ rm -rf old-repository.git

好的,就这样!现在您可以删除原始存储库(虽然我建议只添加 old-并更新README和描述),并确保记住重新克隆正确的存储库!

如果您想保留原始名称,请在完成后重命名它。


感谢您提供详细的解释。当我运行 git push --mirror git@github..../my-new-repository.git 时,出现错误: "! [remote rejected example_branch -> example_branch (pre-receive hook declined) error: failed to push some refs to .../my-new-repository.git"。请问有什么解决办法吗? - Wassadamo

0

您将使用浏览器从分支创建一个PR,当从分支创建PR时,上游存储库将始终是默认基础。要更改此行为,您需要使用浏览器插件来更改比较页面的URL。

https://github.com/<OWNER>/<BASE REPO>/compare/<BRANCH>...<FORK REPO>:<BRANCH>
https://github.com/<YOUR>/<FORK REPO>/compare/<BRANCH>...<FORK REPO>:<BRANCH>

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