在GitHub上,当我们fork其他人的项目之后,如果原作者在自己的项目做了更新,我们fork的项目是没办法同步更新的。那么如何才能同步更新fork之后的项目呢?

有两种方式:界面和命令行。

1. 界面

https://i-blog.csdnimg.cn/blog_migrate/8d4528d058b18c59ed208ba72b97748a.png
https://i-blog.csdnimg.cn/blog_migrate/7a1477ec155b86560825e8c13acbb6b8.png
https://i-blog.csdnimg.cn/blog_migrate/9c75fc6dd9ed5cd2cf291e8254d23d98.png
https://i-blog.csdnimg.cn/blog_migrate/28ef76e92b9e152a801e14e407d5ce61.png
https://i-blog.csdnimg.cn/blog_migrate/7cbbe2614ded820181a2eb1c84012c18.png

2. 命令行

步骤:
1. 配置上游项目地址。即将你 fork 的项目的地址给配置到自己的项目上。比如我 fork 了一个项目,原项目是 wabish/fork-demo.git,我的项目就是 cobish/fork-demo.git。使用以下命令来配置。
git remote add upstream https://github.com/wabish/fork-demo.git
然后可以查看一下配置状况,很好,上游项目的地址已经被加进来了。
git remote -v
origin git@github.com:cobish/fork-demo.git (fetch)
origin git@github.com:cobish/fork-demo.git (push)
upstream https://github.com/wabish/fork-demo.git (fetch)
upstream https://github.com/wabish/fork-demo.git (push)

2. 获取上游项目更新。使用 fetch 命令更新,fetch 后会被存储在一个本地分支 upstream/master 上。
git fetch upstream
3. 合并到本地分支。切换到 master 分支,合并 upstream/master 分支。
git merge upstream/master
4. 提交推送。根据自己情况提交推送自己项目的代码。
git push origin master
由于项目已经配置了上游项目的地址,所以如果 fork 的项目再次更新,重复步骤 2、3、4即可。

参考文章:https://www.zhihu.com/question/20393785/answer/30725725

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐