git cherry-pick

记下来免得自己又忘记了

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,但是不回到操作前的样子

原文地址:https://www.cnblogs.com/peekapoooo/p/14507908.html