我在GitHub上分叉了某人的存储库,并希望使用原始存储库中的提交和更新来更新我的版本。这些都是在我把我的副本分叉后制作的。

我如何将在源代码中所做的更改引入并将其合并到我的存储库中?


当前回答

如果没有什么可失去的,你也可以删除你的叉,只需转到设置。。。转到下面的危险区域部分,然后单击删除存储库。之后,它将要求您输入存储库名称和密码。之后,您只需再次分叉原稿。

其他回答

您必须将原始存储库(您分叉的存储库)添加为远程存储库。

从GitHub关于分叉存储库的文档中:

克隆完成后,你的repo将有一个名为“origin”的远程文件,指向GitHub上的分叉。不要让这个名字迷惑你,这并不是指你分叉的原始回购。为了帮助您跟踪该回购,我们将添加另一个名为“上游”的远程:$cd项目名称$git远程添加上游https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git$git获取上游#然后:(如“gitpull”,即fetch+merge)$git合并上游/主控#或者,更好的是,在获取的分支上回放本地工作#就像“git pull-rebase”$git上游重基/主

还有一个命令行工具(gh)可以方便上面的操作。

以下是它的工作原理:

另请参见“Git分叉实际上是Git克隆吗?”。

本视频演示如何直接从GitHub更新分叉

步骤:

在GitHub上打开你的分叉。单击拉取请求。单击New Pull Request。默认情况下,GitHub会将原始文件与您的fork进行比较,如果您没有进行任何更改,则不应该有任何可比较的内容。单击切换底座。现在GitHub将您的分叉与原始分叉进行比较,您应该可以看到所有最新的更改。单击Create a pull request for this comparison(为此比较创建拉取请求),并为拉取请求分配一个可预测的名称(例如,从原始请求更新)。单击Create pull request。向下滚动并单击合并请求,最后确认合并。如果您的分叉没有任何更改,您将能够自动合并它。

要自动将分叉存储库与父存储库同步,可以使用GitHub上的Pull App。

有关详细信息,请参阅自述文件。

对于希望保留对分叉存储库所做的更改的高级设置,请参阅我在这里对类似问题的回答。

除了VonC的答案,你还可以根据自己的喜好进一步调整。

从远程分支提取后,您仍然需要合并提交。我会替换

$ git fetch upstream

具有

$ git pull upstream master

因为gitpull本质上是gitfetch+gitmerge。

如果没有什么可失去的,你也可以删除你的叉,只需转到设置。。。转到下面的危险区域部分,然后单击删除存储库。之后,它将要求您输入存储库名称和密码。之后,您只需再次分叉原稿。