我在Github上fork了別人一個項目,然後修改之後按照正常流程提交PR,並且對方merged了。
我現在又需要對該專案進行貢獻程式碼,但是發現對方的專案倉庫也有別人更新了新程式碼上去,我怎麼讓我自己倉庫中fork的這個專案程式碼也同步到和對方倉庫一樣的最新版本程式碼,然後我再貢獻?
世界只因有你2017-06-20 10:08:00
首先 把別人的倉庫加到你的上游遠程,通常命名為 upstream。操作一次就可以了。
git remote add upstream 原作者仓库地址
此時再用 git remote -v
就可以看到一個origin是你的,另外一個upstream是原作者的。
其次 更新程式碼
使用git fetch upstream
拉去原作者的倉庫更新。
使用git checkout master
切換到自己的master
使用 git merge upstream/master
, merge或rebase到你的master
为情所困2017-06-20 10:08:00
如果從上次被merge後,沒有在修改你的倉庫中fork的程式碼,那麼我建議直接把你的倉庫中這個項目刪掉,然後重新fork.
我個人不太喜歡樓上說的merge的方式 -- merge方式的歷史記錄不太好看。
如果不想刪除重新fork,可以直接:
git checkout master
git remote add upstream 别人的代码库地址
git fetch upstream/master
git reset --hard upstream/master
怪我咯2017-06-20 10:08:00
先加入你 fork 的函式庫的位址
git remote add FORK-sync https://github.com/xxx/yyy.git
git remote -v
能看到類似的
FORK-sync https://github.com/xxx/yyy.git (fetch)
FORK-sync https://github.com/xxx/yyy.git (push)
origin git@github.xxx/born-1.git (fetch)
origin git@github.xxx/born-1.git (push)
接著接受所 fork 函式庫的內容
git fetch FORK-sync
合併
git merge FORK-sync/master
再推送到你的遠端倉庫就行了
git push