github 上fork 大牛的持续更新的项目,一段时间后,想把大牛提交的部分,更新到自己fork出来的项目上,为此google一把,了然于心,在此记录下~

实现这个需求,发现有2种玩法:

  • Github 上点点就行
  • 使用命令行的方式同步

在Github 页面上点击完成

看图有真相!

使用命令行方式同步

怎么不了解命令行到方式呢~

1.配置源项目的地址

讲fork源的项目地址配置到自己的项目上。

举个栗子

我fork了一个项目:pyeve/eve,我的项目地址就是 fantasykai/eve

项目名称上会显示 forked from pyeve/eve

git clone 自己fork的项目后,添加一个远程仓库,即 源项目地址

git remote add upstream https://github.com/pyeve/eve.git

执行命令行后,查看下是否配置进来

git remote -v

origin	git@github.com:fantasykai/eve.git (fetch)
origin	git@github.com:fantasykai/eve.git (push)
upstream	https://github.com/pyeve/eve.git (fetch)
upstream	https://github.com/pyeve/eve.git (push)

2.获取源项目更新内容。

使用 fetch 命令更新,fetch 后会更新到本地分支 upstream/master

git fetch upstream

3.合并本地分支。

切换到 master 分支,合并upstream/master 分支

git merge upstream/master

4.提交推送

解决本地冲突的代码,然后推送之

git push origin master

这样以来,之后想同步源项目的commits,就执行2,3,4 步骤