問(wèn)題緣起
- 當(dāng)我fork 了自己喜愛(ài)的項(xiàng)目跃捣,就生成了我自己的repo漱牵,并有了一個(gè)副本在我自己的repo上。然后疚漆。酣胀。刁赦。?? 放在那里積灰了。闻镶。甚脉。當(dāng)我再次回來(lái)的時(shí)候,發(fā)現(xiàn)源項(xiàng)目已經(jīng)更新了很多了铆农!可是這個(gè)副本如果不做任何操作牺氨,是不會(huì)持續(xù)更新的《掌剩看著自己repo的古董波闹,心里真不是滋味,誰(shuí)都希望fork之后項(xiàng)目要能夠持續(xù)更新嘛涛碑,這樣才能積極參與項(xiàng)目不是嗎精堕?
- 好吧!趕緊行動(dòng)起來(lái)蒲障!
- 如何使得自己過(guò)去fork的repo和源項(xiàng)目保持同步更新呢歹篓?
方法 :命令行
- 顯示遠(yuǎn)程對(duì)應(yīng)的地址:
cd target-repo
git remote -v
這行命令的目的是顯示 在 我們github遠(yuǎn)程對(duì)應(yīng)倉(cāng)庫(kù)的地址,一般會(huì)出現(xiàn) origin: https://...
這里指的是遠(yuǎn)程origin
對(duì)應(yīng)的是后面的地址揉阎,一般這個(gè)地址是我們自己fork的庄撮。
- 增加源地址:
git remote add upstream <源項(xiàng)目url.git>
這行命令的結(jié)果會(huì)增加一個(gè) upstream
命名的對(duì)應(yīng)的源項(xiàng)目地址,為什么用upstream
呢毙籽?直接洞斯,用其他名字也可以,這樣我們?cè)?git remote -v
就會(huì)顯示
origin: https://... <自己的repo>
upstream: https://... <源項(xiàng)目的repo>
- 回到master分支坑赡,或者確定所在的分支是master:
git checkout master
這個(gè)時(shí)候烙如,分支是origin/master
- 將更新的源項(xiàng)目分支合并到自己的項(xiàng)目上
git merge upstream/master
實(shí)際上,我們就是用更新后的 upstream/master
取代了 origin/master
這樣毅否,本封存已久的古董終于可以更新到當(dāng)下了亚铁!
別急,還差一步螟加,因?yàn)槲覀兡壳案碌氖潜镜亍?/p>
- 將本地倉(cāng)庫(kù)push到Github上:
git push origin master
至此徘溢,遠(yuǎn)程自己的Github也更新完畢了。開(kāi)工吧捆探!