在Github遇到好的源代碼工程,通常咱們能夠用Fork把庫Clone到本身的空間中,而後進行修改。html
可是再過一段時間後,原做者對其工程進行了修改,咱們的版本已經落後於主版本了,這時但願能將其更新合併過來,怎麼作呢?git
一個辦法是在原始網站中建立一個pull request,將本身的庫做爲目標。這個常常有合併失敗的狀況。github
還有一個辦法是拉取到本地進行合併,再推送上去。由於能夠在本地進行修改,因此比較靈活。
shell
譬如,我在[https://github.com/skyswind/GIScript.git]上經過Github.com網站頁面Fork到本身的空間。工具
而後,在本地經過命令行工具取到本地目錄中,以下。
fetch
git clone https://github.com/supergis/GIScript.git
按照以下步驟操做便可:網站
echo "Merge git from upstream..." echo "指定遠程的源。" git remote add upstream https://github.com/skyswind/GIScript.git echo "獲取遠程源的更新。" git fetch upstream echo "合併到本地庫中。" git merge upstream/master echo "提交到本地版本庫中。" git commit -a -m "merged upstream." echo "推送提交到本身的github庫中。" git push echo "Merge upstream finished."
若是本身的修改但願貢獻到主版本中,只須要在本身的工程頁面發起一個pull request便可(是否合併進去,要看人家的意思哦)。命令行
詳細的分支管理策略見這裏:http://www.ruanyifeng.com/blog/2012/07/git.htmlhttp://www.ruanyifeng.com/blog/2012/07/git.htmlcode