git cherry-pick

0
0·
本文介绍了如何使用git cherry-pick将一个分支中的特定提交合并到另一个分支。通过找到commit id,切换分支,拉取最新代码,然后执行git cherry-pick命令实现合并。在遇到代码冲突时,提供了处理冲突的步骤。cherry-pink 的作用就是将一个分支中的某一次提交操作合并到另外一个分支中(注意合并的是一个分支中的某一次提交)
例如当前分支位于dev分支上,我们仅仅是想将dev分支上的某一次提交合并到main分支中
第一步:在当前(dev)分支中查找到某一次提交操作的commit id,可以使用下述命令
git rev-parse HEAD
我们得到了commit id为f5044795af999044a8c8f77e222578034c34c2af
当前除了上述命令获取commit id以外,还可以使用下述命令获取一个较短长度的commit id:
git rev-parse --short HEAD执行上述命令以后,获取到的较短长度的commit id为:
f504479
关于git rev-parse HEAD命令的补充介绍:
git rev-parse HEAD:获取当前分支中最近的一次commit idgit rev-parse --short HEAD:获取当前分支中最近的一次commit idgit rev-parse HEAD~x:获取当前分支中排除最近的一次commit id,前面第x次的commit id(可以理解为是一种降序排列)除了上述方法能获取到当前分支的commit id以外,其实还可以使用下述命令:
git log -n 5 --oneline
从上面这张图我们也可以看出最近一次commit id为 f504479,不管是短的commit id,还是长的commit id其后面对于使用git cherry-pink命令的作用是一样的。
第二步:使用 git checkout 命令切换到另外一个分支(main)
git checkout 分支名称切换完分支以后使用git pull命令拉取当前分支的最新代码:
git pull第三步:在main分支中使用git cherry-pick commitid 命令将dev分支上的某一次提交操作合并到main分支中,如下所示:

可以看到在执行了上述命令以后, 在main分支中自动创建两个新文件。
当前进行cherry-pink是十分顺利的,还没有遇到代码冲突这种情况。假设遇到了如下所示的代码冲突,那我们该怎么办了?

查看代码合并具有冲突的文件:

将当前分支的代码删除掉,保留想要合并进来的其它分支的代码,处理完以后会看见文件命名变成红色:

这个时候只需要将已解决代码冲突的文件再次进行git add添加到暂存区,这个时候这个文件命名的颜色就会变成蓝色,接着再从暂存区提交到本地仓库即可。


















































































