fork 了别人的仓库后,原作者又更新了仓库,如何将自己的代码和原仓库保持一致?本文将给你解答。
如何使用搜索引擎
其实这个问题并不难,我又被坑了。百度搜的东西不靠谱啊,以后这种问题一定要用英文在 Google 或者 Bing 上搜索,这样才能搜到原汁原味的答案。就当是一个教训吧。
搜索 fork sync,就可以看到 GitHub 自己的帮助文档 Syncing a fork 点进去看这篇的时候,注意到有一个 Tip: Before you can sync your fork with an upstream repository, you must configure a remote that points to the upstream repository in Git.
根据这两篇文章,问题迎刃而解!
具体方法
Configuring a remote for a fork
给 fork 配置一个 remote
主要使用
git remote -v
查看远程状态。
1 | git remote -v |
- 添加一个将被同步给 fork 远程的上游仓库
1 | git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git |
- 再次查看状态确认是否配置成功。
1 | git remote -v |
Syncing a fork
- 从上游仓库 fetch 分支和提交点,传送到本地,并会被存储在一个本地分支
upstream/master
git fetch upstream
1 | git fetch upstream |
- 切换到本地主分支(如果不在的话)
git checkout master
1 | git checkout master |
- 把 upstream/master 分支合并到本地 master
上,这样就完成了同步,并且不会丢掉本地修改的内容。
git merge upstream/master
1 | git merge upstream/master |
- 如果想更新到 GitHub 的 fork 上,直接
git push origin master
就好了。