我在GitHub上分叉了某人的存储库,并希望使用原始存储库中的提交和更新来更新我的版本。 这些是我分叉副本后制作的。
如何提取原产地所做的更改并将其合并到我的存储库中?
#1楼
除了VonC的答案,您还可以根据自己的喜好对它进行调整。
从远程分支获取后,您仍然必须合并提交。 我会取代
$ git fetch upstream
与
$ git pull upstream master
因为git pull本质上是git fetch + git merge。
#2楼
脚步:
- 在GitHub上打开fork。
- 点击
Pull Requests
。 - 点击
New Pull Request
。 默认情况下,GitHub会将原始内容与您的fork进行比较,如果您未进行任何更改,则不应有任何可比较的内容。 - 单击
switching the base
。 现在,GitHub将把您的fork与原始的进行比较,您应该会看到所有最新的更改。 - 单击
Create a pull request
用于此比较的Create a pull request
为Create a pull request
分配一个可预测的名称(例如,从原始文件更新)。 - 单击
Create pull request
。 - 向下滚动并单击
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楼
您必须将原始存储库(您分叉的存储库)添加为远程存储库。
克隆完成后,您的存储库将有一个名为“
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 。
有关更多详细信息,请参阅自述文件 。
对于要保留对分支存储库所做的更改的高级设置,请在此处参考我对类似问题的回答。
来源:CSDN
作者:asdfgh0077
链接:https://blog.csdn.net/asdfgh0077/article/details/103833043