1 cherry-pick

  git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。 例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个v3.0中的功能到v2.0中,这里就可以使用cherry-pick了。   如下图,比如我们想将master的C5修改记录,也提交到dev-feature这个分支上,我们可以使用:

git cherry-pick ee99d9a

cherry-pick 如果没有修改文件的同一行则提交顺利。如果有冲突则需要手工解决。

2 冲突解决

如下图,我们进行cherry-pick发生了冲突。git 提示我们先手工修复,然后git add [patchs],最后git commit 即可。 通过git status 可以选择终止cherry-pick 或者继续。 conflict

解决完冲突后: solve-conflict reflog

3 cherry-pick 一组提交

To cherry-pick all the commits from commit A to commit B (where A is older than B), run:

git cherry-pick A^..B

if you want to ignore A itself, run:

git cherry-pick A..B

有个问题:使用 cherry-pick 会更新 commit-data, author-date,那么如何解决呢? 且听下回分解。