将新更新从原始GitHub存储库中提取到派生的GitHub存储库中

被刻印的时光 ゝ 提交于 2020-02-07 10:30:21

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

如何提取原产地所做的更改并将其合并到我的存储库中?


#1楼

除了VonC的答案,您还可以根据自己的喜好对它进行调整。

从远程分支获取后,您仍然必须合并提交。 我会取代

$ git fetch upstream

$ git pull upstream master

因为git pull本质上是git fetch + git merge。


#2楼

视频显示了如何直接从GitHub更新fork

脚步:

  1. 在GitHub上打开fork。
  2. 点击Pull Requests
  3. 点击New Pull Request 。 默认情况下,GitHub会将原始内容与您的fork进行比较,如果您未进行任何更改,则不应有任何可比较的内容。
  4. 单击switching the base 。 现在,GitHub将把您的fork与原始的进行比较,您应该会看到所有最新的更改。
  5. 单击Create a pull request用于此比较的Create a pull requestCreate a pull request分配一个可预测的名称(例如,从原始文件更新)。
  6. 单击Create pull request
  7. 向下滚动并单击Merge pull request ,最后Confirm合并。 如果您的叉子没有任何变化,您将能够自动合并它。

#3楼

使用:

git remote add upstream ORIGINAL_REPOSITORY_URL

这会将您的上游设置为您从中派生的存储库。 然后执行以下操作:

git fetch upstream      

这将从原始存储库中获取所有分支,包括master。

在您的本地master分支中合并以下数据:

git merge upstream/master

将更改推送到您的派生存储库,即源:

git push origin master

瞧! 同步原始存储库已完成。


#4楼

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

GitHub fork手册页

克隆完成后,您的存储库将有一个名为“ origin ”的远程文件,指向您在GitHub上的fork。
不要让名称混淆您,这并不指向您从中派生的原始存储库。 为了帮助您跟踪该存储库,我们将添加另一个名为“上游”的远程服务器:

$ cd github-services
$ git remote add upstream git://github.com/pjhyett/github-services.git
$ git fetch upstream

# then: (like "git pull" which is fetch + merge)
$ git merge upstream/master master

# or, better, replay your local work on top of the fetched branch
# like a "git pull --rebase"
$ git rebase upstream/master

您还拥有一个可以促进GitHub操作红宝石

另请参阅“ Git fork是git clone? ”。


#5楼

如果您使用的是GitHub桌面应用程序,则右上角有一个同步按钮。 单击它,然后Update from <original repo>左上方附近的Update from <original repo>

如果没有要同步的更改,则它将处于不活动状态。

这是一些屏幕截图 ,可简化此操作。


#6楼

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


#7楼

要自动将派生的存储库与父存储库同步,可以在GitHub上使用Pull App

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

对于要保留对分支存储库所做的更改的高级设置,请在此处参考我对类似问题的回答。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!