之前使用git,在另一个分支上比较长时间地进行开发,开发过程中需要master分支上更新的一个小模块的代码,而为了避免未知的问题,并不想先将master分支合并进来.当时使用了直接复制代码的方法进行解决.

之后在对git的进一步学习中,了解到了可以通过cherry-pick指令,来让git代替你完成这些工作.

 

下面给出了一个例子,拙劣地表现了工作中遇到的场景,首先是代码:

在完成最初的提交后,func1和func2分别交给两个人完成,而之后func2的开发过程中,需要使用已完成基础功能的func1,于是将完成基础功能的提交,cherrypick到自己当前的devel分支上(git cherry-pick 705216)(这个场景其实直接merge也行,应该倒转一下master的提交1,2顺序的).最后将所有的工作合并到master分支.分支结构如下所示:

因为提交的内容是相同的,所以cherry-pick所修改的地方在合并时并不会冲突.

PS1:cherry-pick -x 就会自动在生成的提交内容里加上”这是cherry-pick自xxxx提交”之类的信息
PS2:虽然内容相同,可是不同的提交哦

PS3:f7(eiki)….~