我们经常会在GitHub上fork别人的项目,我也这样弄过几个仓库,最近遇到了这样的问题,我发现原仓库近期有了好多更新,但是自己fork的项目并没有去同步它们,这个时候我需要将原仓库的更新同步到我fork过的仓库中。但是GitHub上也没有指导这样做的方法。

原仓库有很多更新了:

git-merge-old
git-merge-old

但是自己fork的仓库没有自己同步:

git-merge-new
git-merge-new

经过一番探索,我找到了解决同步的办法如下:

  • 我们点击自己仓库的new pull request按钮
new-pull-request
new-pull-request
  • 进入到如下界面
pull-request-page
pull-request-page
  • 将base repository改为自己的仓库
base-repository
base-repository
  • 页面刷新后提示没有什么要比对的,不要慌,点击中间的compare across forks,意思是在fork的仓库中进行比对。
compare-across-forks
compare-across-forks
  • 将head repository改为原仓库的
head-repository
head-repository
  • 页面更新后,点击create pull request
creat-pull-request
creat-pull-request
  • 写点提交信息,然后再点击create pull request
creat-pull-request-sure
creat-pull-request-sure
  • 页面刷新之后,翻到页面底部,提示没有冲突,这个时候点击merge pull request
merge-pull-request
merge-pull-request
  • 然后点击confirm merge确认一下提交的邮箱就开始合并啦
confirm-merge
confirm-merge
  • 返回自己仓库的code页面,我们会发现,已经同步成功了,大工告成啦!🎉🎉
merged-new-code
merged-new-code