要解決的問題
玩過github的人一定會在你自己的賬号上fork了一些github開源項目。這些開源項目往往更新比較活躍,你今天fork用到你自己的項目中去了,過幾個星期這個fork的origin可能有一些bugfix了,你怎麼辦呢?當然直接到Origin repo中去clone是一個方法,但是github的public repo有可能過一段時間就被作者删除了,你是否希望在origin即使已經被删除的情況下,你的賬号下依然有你鐘情的repo?
解決上面的問題,最好的方法就是不定時地将origin的commit sync到你自己的fork repo中,一方面能夠保持鮮活,另一方面有備無患。那麼如何sync呢?又有幾種方案,一種是你直接在本地clone的repo中,pull upstrame,做好merge,随後push到你自己的fork repo中。
方法一 親測可行
另外還有一種更加簡便聰明的方法:隻需在github網站上點幾個滑鼠,不用本地開發環境輕松搞定:
1.打開你的github fork repo;
2.點選Pull request;
3.點選new pull request.預設情況下,github會比較original/your fork,這時應該不會有任何輸出,因為你并沒有做過任何變更;
4.點選switching the base.這時github将反過來比較yourfork/original,這時你将看到original相對你fork時的所有commit;
5.點選create a pull request for this comparison,這時将會反過來向你的repo送出一個pull request;
6.這時你作為你自己fork的repo的owner,你就可以點選confirm the merge,大筆一揮,所有的改動都被你一網打盡了@!
enjoy it!
方法二
附上比較費勁的另外一種更新辦法:
git remote add upstream <pathtooriginalrepo>
git fetch upstream
git merge upstream/master master
git push origin master
參考連結
- 如何直接在github網站上更新你fork的repo?