赞
踩
当我们在合并分支时,是将源分支的所有内容都合并到目标分支上,有的时候我们可能只需要合并源分支的某次或某几次的提交,这个时候我们就需要使用到git的cherry-pick操作了。cherry-pick翻译成中文就是摘樱桃的意思,也就是有选择性的。
大家看看这张图 (画图水平有限,只能画成这样了,大家将就看看)
图中从master分支中拉出了一条分支叫做dev分支,dev分支上有三次提交记录,如果这个时候直接使用merge操作那么就会将dev分支上的三次提交记录全部合并到master分支上,这个时候我们使用cherry-pick就可以挑选dev分支的某一次或几次提交记录有合并到master分支上。
当前我使用git log --oneline命令查看了我dev分支上的提交记录信息,每一次提交记录前都会有对应的提交版本号,这里我暂且用commitid替代
1、git cherry-pic commitid
去合并某分支的某一次提交记录
2、git cherry-pick commitid1 commitid2 ...
有挑选性的去合并分支的某几次提交记录
3、git cherry-pick commitid1..commitid2
合并提交记录commitid1到commitid2之间的所有的提交记录,但不包含commitid1的这次提交记录
4、git cherry-pick commitid1^..commitid2
合并提交记录commitid1到commitid2之间的所有的提交记录,包含commitid1的这次提交记录
5、git cherry-pick 分支名
合并该分支上最新的一次提交记录
用户手动先手动解决有冲突的文件,然后将文件重新加入暂存区(git add),第二步使用如下命令让cherry-pick继续执行
git cherry-pick --continue
如果认为冲突太多了,不想继续cherry-pick,那么可以使用如下命令取消cherry-pick,这个时候会恢复到cherry-pick前的样子
git cherry-pick --abort
git cherry-pick --quit
这种情况属于摆烂行为,一般不会这么用
注意:完成cherry-pick后变更的文件不会在暂存区里出现,也就是使用git status是查看不到的,确认无误后直接使用git push推送到远程库即可
这是是cherry-pick的一部分用法,当然cherry-pick还有其他操作,感兴趣的话大家可以自己拓展一下,这次就给大家分享这么多,非常感谢大家的阅读和支持!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。