git合并指定提交记录代码 git cherry-pick
git cherry-pick命令格式:ast
git cherry-pick [--edit] [-n] [-m parent-number] [-s] [-x] [--ff] [-S[<keyid>]] <commit>…bug
git cherry-pick --continuedi
git cherry-pick --quit文件
git cherry-pick --abortco
命令解读:参数
<commit>…:
须要合并的已发生的提交记录,多个用空格隔开,例如:git cherry-pick c1 c2 c3 c4;
--edit:
在合并前,git会要求你先填备注,就是每次提交前要填的提交备注;
-n:
默认状况下,cherry-pick命令执行成功后会自动提交合并的代码到本地仓库。若是使用该参数,cherry-pick执行成功后不会自动提交代码。当要合并多个提交记录的场景下,该参数特别有用处。例如:git cherry-pick -n c1 c2 c3 c4;
-m: parent-number
默认状况只会合并当前提交记录(例如c1)的代码,若是想要合并该次合并代码的父提交记录,则须要指定parent-number,例如:git cherry-pick -m c1 c2,意思就是合并c2,而且合并c2上一次提交的代码c1。这样就会将c1提交的文件也合并到当前分支;
git cherry-pick --continue
用于在cherry-pick失败或者revert(回退)失败,处理完冲突后继续执行;
git cherry-pick --quit
忽略当前正在执行的cherry-pick操做。在cherry-pick失败或者revert(回退)失败后,能够用来清除sequencer(序列器)的当前状态;
git cherry-pick --abort
取消操做而且返回上一个sequencer的状态
二、转移多个连续提交
git cherry-pick A..B
上面的命令可以转移从 A 到 B 的所有提交。它们必须按照正确的顺序放置:提交 A 必须早于提交 B,否则命令将失败,但不会报错。
注意,使用上面的命令,提交 A 将不会包含在 Cherry pick 中。如果要包含提交 A,可以使用下面的语法。
git cherry-pick A^..B