介绍
介绍
有的时候我们在合并Git分支的时候会发现两个分支的差异特别大,这种情况多发生在多人开发一个项目的时候。
如果只是差异大还好,如果还伴随着一堆冲突,那简直不要太恶心~~
原因
这个原因大家应该比较容易想明白,就是在你commit修改的时候,也许其他人已经commit过很多很多次了。
这里面不乏一些公共库大家都会往里面添油加醋,这时候后面提交的人就会遇到突出问题了。
解决
福哥模拟了一次需要用到Cherry Pick的场景,利用这个场景给大家演示如何通过Cherry Pick解决问题。
master
福哥在master分支上面改一个文件PYMySQL.py,增加了demo方法。
testA
福哥从master分支的久远的历史里面切出了一个分支testA,这个时候项目里面还没有PYMySQL.py文件。
福哥在testA分支下面创建了PYMySQL.py文件,并且增加了demo方法,定义与master分支的不太一样。
福哥又在testA分支下面创建了CherryPick.py文件,里面打印了一句话。
合并testA到master
果不其然,合并失败,遇到冲突了~~
这个时候如果福哥只是想将CherryPick.py的修改合并到master,又不想处理PYMySQL.py的冲突(也许实际情况会有几十个上百个冲突也说不定),该怎么办呢?
打开log
首先打开master分支的日志。
切换testA的log
切换到testA分支的日志。
Cherry Pick
使用Cherry Pick合并单次修改提交。
合并
点击“Continue”按钮合并单词提交。
推送
再次推送到服务器,成功了!
注意事项
Cherry Pick也会遇到冲突情况,但是只需要解决本次提交的冲突就可以合并了。
如果源分支有多次提交,需要逐个进行Cherry Pick,按照提交的顺序来。
总结
这个Cherry Pick在实际的工作当中是非常实用的,大家可以灵活运用这个功能避免不必要的操作,浪费时间不说,还增加项目风险。