问题缘起
- 当我fork 了自己喜爱的项目,就生成了我自己的repo,并有了一个副本在我自己的repo上。然后。。。😓 放在那里积灰了。。。当我再次回来的时候,发现源项目已经更新了很多了!可是这个副本如果不做任何操作,是不会持续更新的。看着自己repo的古董,心里真不是滋味,谁都希望fork之后项目要能够持续更新嘛,这样才能积极参与项目不是吗?
- 好吧!赶紧行动起来!
- 如何使得自己过去fork的repo和源项目保持同步更新呢?
方法 :命令行
- 显示远程对应的地址:
cd target-repo
git remote -v
这行命令的目的是显示 在 我们github远程对应仓库的地址,一般会出现 origin: https://...
这里指的是远程origin
对应的是后面的地址,一般这个地址是我们自己fork的。
- 增加源地址:
git remote add upstream <源项目url.git>
这行命令的结果会增加一个 upstream
命名的对应的源项目地址,为什么用upstream
呢?直接,用其他名字也可以,这样我们再 git remote -v
就会显示
origin: https://... <自己的repo>
upstream: https://... <源项目的repo>
- 回到master分支,或者确定所在的分支是master:
git checkout master
这个时候,分支是origin/master
- 将更新的源项目分支合并到自己的项目上
git merge upstream/master
实际上,我们就是用更新后的 upstream/master
取代了 origin/master
这样,本封存已久的古董终于可以更新到当下了!
别急,还差一步,因为我们目前更新的是本地。
- 将本地仓库push到Github上:
git push origin master
至此,远程自己的Github也更新完毕了。开工吧!