在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