0


git操作之cherry-pick

当我们在合并分支时,是将源分支的所有内容都合并到目标分支上,有的时候我们可能只需要合并源分支的某次或某几次的提交,这个时候我们就需要使用到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 分支名

合并该分支上最新的一次提交记录

cherry-pick时出现冲突该如何解决?

1、继续执行cherry-pick

用户手动先手动解决有冲突的文件,然后将文件重新加入暂存区(git add),第二步使用如下命令让cherry-pick继续执行

git cherry-pick --continue

2、取消cherry-pick

如果认为冲突太多了,不想继续cherry-pick,那么可以使用如下命令取消cherry-pick,这个时候会恢复到cherry-pick前的样子

git cherry-pick --abort

3、发生代码冲突后,退出 cherry pick,但是不回到操作前的样子

git cherry-pick --quit

这种情况属于摆烂行为,一般不会这么用

注意:完成cherry-pick后变更的文件不会在暂存区里出现,也就是使用git status是查看不到的,确认无误后直接使用git push推送到远程库即可

这是是cherry-pick的一部分用法,当然cherry-pick还有其他操作,感兴趣的话大家可以自己拓展一下,这次就给大家分享这么多,非常感谢大家的阅读和支持!!!

标签: git github

本文转载自: https://blog.csdn.net/TheOne0226/article/details/129036945
版权归原作者 TheOne0226 所有, 如有侵权,请联系我们删除。

“git操作之cherry-pick”的评论:

还没有评论