在Github遇到好的源代码工程,一般我们可以用Fork把库Clone到自己的空间中,然后进行修改。
但是再过一段时间后,原作者对其工程进行了修改,我们的版本已经落后于主版本了,这时希望能将其更新合并过来,怎么做呢?
一个办法是在原始网站中创建一个pull request,将自己的库作为目标。这个经常有合并失败的情况。
还有一个办法是拉取到本地进行合并,再推送上去。因为可以在本地进行修改,所以比较灵活。
譬如,我在[https://github.com/skyswind/GIScript.git]上通过Github.com网站页面Fork到自己的空间。
然后,在本地通过命令行工具取到本地目录中,如下。
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.html