您必须将原始存储库(您分叉的存储库)添加为远程存储库。
从关于分叉存储库的 GitHub 文档中:
克隆完成后,您的存储库将具有一个名为 “
origin
” 的远程文件,该文件指向您在 GitHub 上的 fork。
不要让名称混淆您,这并不指向您从中分叉的原始存储库。为了帮助您跟踪该存储库,我们将添加另一个名为 “上游” 的远程服务器:$ cd PROJECT_NAME $ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.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
这是它如何工作的视觉效果:
另请参见 “ Git 分支实际上是 Git 克隆吗? ”。
除了 VonC 的答案外,您还可以根据自己的喜好对它进行调整。
从远程分支获取后,您仍然必须合并提交。我会取代
$ git fetch upstream
和
$ git pull upstream master
因为 git pull 本质上是 git fetch + git merge。
用:
git remote add upstream ORIGINAL_REPOSITORY_URL
这会将您的上游设置为您从中派生的存储库。然后执行以下操作:
git fetch upstream
这将从原始存储库中获取所有分支,包括 master。
将这些数据合并到您的本地 master 分支中:
git merge upstream/master
将更改推送到您的派生存储库,即原始源:
git push origin master
瞧!同步原始存储库已完成。