git篇之Cherry-pick
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git篇之Cherry-pick相关的知识,希望对你有一定的参考价值。
参考技术A cherry-pick就是从不同的分支中捡出单独的commit,并把它和你当前的分支合并。例子有版本一、二、三,只想要版本三的东西挑选多个提交合并,提交之间用空格相隔。例如,想挑选1号和3号的,就可以用git cherry-pick 4d2951 e4cdff9命令一步到位了。
挑选一个范围的多个提交合并,但是这个语法对应操作区别是左开右闭,不包含start-commit。另外要注意两个commit 之间要求有连续关系的,并且前者要在后者之前,顺序不能颠倒。
挑选 branch 最顶端的提交。例如挑选 版本三可以用git cherry-pick develop
git checkout 到master分支下
git cherry-pick 版本号
git cherry-pick --continue
git cherry-pick --quit //退出
git cherry-pick --abort //停止本次操作
git cherry-pick
今天给大家介绍git一个非常实用的技能cherry-pick
。cherry-pick
字面翻译就是捡樱桃(吃货们请自重),但在git里,它的功能是把已经存在的commit进行挑选,然后重新提交。下面大家可以脑补一下这种情况,本地仓库有3个分支master
、test
、normal
,他们的提交记录如下:
在master
的基础上,test
进行了2次提交,normal
进行了1次提交。现在想把test
的第2次提交(仅仅是第2次提交,不包含第1次提交)和normal
的第1次提交合并到master分支,直接merge分支是行不通的,这样会把两个分支的全部提交都合并到master
,用cherry-pick
即可完美的解决问题, 如果normal
第一次提交的SHA-1
值是9b47dd
,test
第二次提交的值是dd4e49
,执行如下命令即可把这两个提交合并到master
git cherry-pick 9b47dd dd4e49
如果有冲突,则需要修改冲突文件,然后添加修改文件到暂存区,命令如下:
git add main.js
最后执行
git cherry-pick --continue
最后要说明的是:
- 执行完
git cherry-pick --continue
后不需要commit了,该命令会自动提交 git cherry-pick --abort
可以放弃本次cherry-pick
git cherry-pick 9b47dd dd4e49
和git cherry-pick dd4e49 9b47dd
这两个的结果可能会不一样,顺序很重要
最好借用工具解决冲突,GitTortoise
以上是关于git篇之Cherry-pick的主要内容,如果未能解决你的问题,请参考以下文章
Git学习篇之git remote add origin错误
持续集成高级篇之Jenkins Pipeline git拉取