我fork了一个GitHub项目,如何保持与原始项目的同步?

24
在 GitHub 上,我 fork 一个项目后进行修改并提交拉取请求后,似乎必须删除并重新 fork 才能保持与我的拉取请求被接受后进行的任何更改同步更新。
需要不断删除仓库以保持最新状态这看起来很繁琐。有没有一些方法可以在不删除和重新 fork 的情况下使其保持最新状态呢?
2个回答

32

你应该将原始项目添加为你的工作副本中的远程仓库。这样,你就可以从原始存储库拉取更改并将其推送到你的分叉存储库中。相关命令如下:

git remote add upstream <original repo url>
git pull upstream master
git push origin

1
@metaperl 的观点确实有道理,但对于从 GitHub 经过的任何人来说,能够在 GitHub 界面内完成这项工作会很不错。 - Toby Allen
2
为什么需要在本地执行是为了处理潜在的冲突。一旦您分叉并提交了内容,您的存储库就与原始存储库不同。即使他们接受了您的拉取请求,他们也可能不会拉取所有提交记录,而只是挑选其中一些。为确保您的HEAD完全相同,请将您的主分支重命名,并从upstream/master创建一个新的主分支。 - dalore
1
这是非常好的知识。我想更新我的分支以包含某些项目中的个人代码,但我也想保持与原始主分支同步。很遗憾他们提供的Github客户端不允许此功能。我找到了一个帖子,提供可以处理此功能的GUI客户端。http://superuser.com/a/436508/135890 - micah

0
你可以通过将自己的仓库与原始仓库进行比较并创建拉取请求,然后将其合并到自己的仓库中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接