git cherry-pick
--A---B---C---D
\
E
\
F
假设有以上ABCDEF等一些提交,当前在D这个提交点上,如果想把F重新提交到D所在分支的后面,可以使用 git cherry-pick F,这时会变成如下状态
--A---B---C---D---F‘ \ E \ F
git cherry-pick <commit id>:单独合并一个提交
git cherry-pick -x <commit id>:同上,不同点:保留原提交者信息。
Git从1.7.2版本开始支持批量cherry-pick,就是一次可以cherry-pick一个区间的commit。
git cherry-pick <start-commit-id>..<end-commit-id>
或
git cherry-pick <start-commit-id>^..<end-commit-id>
前者表示把<start-commit-id>到<end-commit-id>之间(左开右闭,不包含start-commit-id)的提交cherry-pick到当前分支;
后者表示把<start-commit-id>到<end-commit-id>之间(闭区间,包含start-commit-id)的提交cherry-pick到当前分支。