git cherry-pick
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
如果没有修改文件的同一行则提交顺利。如果有冲突则需要手工解决。
2 冲突解决
如下图,我们进行cherry-pick发生了冲突。git 提示我们先手工修复,然后git add [patchs],最后git commit 即可。 通过git status 可以选择终止cherry-pick 或者继续。
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
,那么如何解决呢?
且听下回分解。