记下来免得自己又忘记了
1. 基本用法
git cherry-pick <commitHash>
将指定的提交 commitHash 应用于当前分支,同时在当前分支产生一个新的提交。
a - b - c - d Master
e - f -g Feature
现在将提交f应用到 master 分支。
git checkout master
git cherry-pick f
操作后,分支变成下图:
a - b - c - d - f Master
e - f - g Feature
git cherry-pick
的参数,也可以是分支名,代表将该分支最近的一次commit转移到当前分支。
2. 转移多个提交
git cherry-pick <HashA> <HashB>
将 A 和 B 两个提交应用到当前分支,同时产生两个对应的新提交。
git cherry-pick A..B
将从 A 到 B 的所有提交(不包括A)
git cherry-pick A^..B
将从 A 到 B 的所有提交(包括A)
3.常用配置
(1)-n
,--no-commit
只更新工作区和暂存区,不产生新的提交。
(2)-x
在提交信息的末尾追加一行(cherry picked from commit ...)
,方便以后查到这个提交是如何产生的。
(3)-s
,--signoff
在提交信息的末尾追加一行操作者的签名,表示是谁进行了这个操作。
4.代码冲突
当又代码冲突时,cherry-pick会停下来,可以有以下三种操作:
1. --continue
解决冲突后,先加入暂存区,再执行 --continue,让git cherry-pick继续执行
2. --abort
发生代码冲突后,放弃合并,回到操作前的样子
3. --quit
发生代码冲突,退出cherry pick,但是不回到操作前的样子