我在GitHub上分叉某人的存储库,并希望使用原始存储库中的提交和更新来更新我的版本.这些都是在我分发我的副本后制作的.
如何引入在原点中所做的更改并将它们合并到我的存储库中?
您必须将原始存储库(您分叉的存储库)添加为远程存储库.
从GitHub fork手册页:
一旦克隆完成,你的repo将有一个名为"
origin
" 的遥控器指向你在GitHub上的分叉.
不要让这个名字混淆你,这并不是指你分叉的原始回购.为了帮助您跟踪该回购,我们将添加另一个名为"upstream"的远程:
$ 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? ".
除了VonC的答案,你可以根据自己的喜好进一步调整它.
从远程分支获取后,您仍然需要合并提交.我会替换
$ git fetch upstream
同
$ git pull upstream master
因为git pull本质上是git fetch + git merge.
该视频演示了如何直接从GitHub更新分支
脚步:
在GitHub上打开你的分叉.
点击Pull Requests
.
点击New Pull Request
.默认情况下,GitHub会将原始文件与您的fork进行比较,如果您没有进行任何更改,则不应该进行任何比较.
点击switching the base
.现在GitHub会将你的分叉与原版进行比较,你应该看到所有最新的变化.
单击Create a pull request
此比较并为拉取请求指定可预测的名称(例如,从原始更新).
点击Create pull request
.
向下滚动并单击Merge pull request
,最后Confirm
合并.如果您的fork没有任何更改,您将能够自动合并它.
使用:
git remote add upstream ORIGINAL_REPOSITORY_URL
这会将您的上游设置为您分叉的存储库.然后这样做:
git fetch upstream
这将从原始存储库中获取包括master在内的所有分支.
在本地主分支中合并此数据:
git merge upstream/master
将更改推送到分叉存储库,即到源:
git push origin master
瞧!您已完成同步原始存储库.