我在Github上fork了別人一個項目,然後修改之後按照正常流程提交PR,並且對方merged了。
我現在又需要對該專案進行貢獻程式碼,但是發現對方的專案倉庫也有別人更新了新程式碼上去,我怎麼讓我自己倉庫中fork的這個專案程式碼也同步到和對方倉庫一樣的最新版本程式碼,然後我再貢獻?
首先 把別人的倉庫加到你的上游遠程,通常命名為 upstream。操作一次就可以了。
git remote add upstream 原作者仓库地址
此時再用 git remote -v 就可以看到一個origin是你的,另外一個upstream是原作者的。
git remote -v
其次 更新程式碼
使用git fetch upstream 拉去原作者的倉庫更新。
git fetch upstream
使用git checkout master 切換到自己的master
git checkout master
master
使用 git merge upstream/master, merge或rebase到你的master
git merge upstream/master
如果從上次被merge後,沒有在修改你的倉庫中fork的程式碼,那麼我建議直接把你的倉庫中這個項目刪掉,然後重新fork.
我個人不太喜歡樓上說的merge的方式 -- merge方式的歷史記錄不太好看。
如果不想刪除重新fork,可以直接:
git checkout master git remote add upstream 别人的代码库地址 git fetch upstream/master git reset --hard upstream/master
先加入你 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
雷雷
這些圖文教學早就有了。 http://blog.csdn.net/qq133247...
首先 把別人的倉庫加到你的上游遠程,通常命名為 upstream。操作一次就可以了。
此時再用
git remote -v
就可以看到一個origin是你的,另外一個upstream是原作者的。其次 更新程式碼
使用
git fetch upstream
拉去原作者的倉庫更新。使用
git checkout master
切換到自己的master
使用
git merge upstream/master
, merge或rebase到你的master如果從上次被merge後,沒有在修改你的倉庫中fork的程式碼,那麼我建議直接把你的倉庫中這個項目刪掉,然後重新fork.
我個人不太喜歡樓上說的merge的方式 -- merge方式的歷史記錄不太好看。
如果不想刪除重新fork,可以直接:
先加入你 fork 的函式庫的位址
能看到類似的
接著接受所 fork 函式庫的內容
合併
再推送到你的遠端倉庫就行了
雷雷
這些圖文教學早就有了。 http://blog.csdn.net/qq133247...