在我们日常开发工作中,有时候会遇到需要把某个git分支中的某个功能合并到另一分支,却因为一些差异而不能使用git merge
,进行单纯的分支合并。
这时cherry-pick
便将起到至关重要的作用了。
合并单个commit
例:想要在
b1
分支合并进x
功能,则首先在有x
功能的分支执行git log
找到该功能的提交记录以及对应的commit hash id
,然后切换到b1
分支,执行cherry-pick
;
git cherry-pick <hash>
合并多个commit
提取合并
hash1
到hash2
之间提交的所有内容,包括hash2
不包括hash1
,即 (前开后闭的区间]
git cherry-pick <hash1>..<hash2>
提取合并
hash1
到hash2
之间提交的所有内容,包括hash2
和hash1
,即 [闭区间]
git cherry-pick <hash1>^..<hash2>