git cherry-pick的使用举例

git cherry-pick用于把其他的commit修改应用到当前提交。


git 文档对git cherry-pick的描述:
Apply the changes introduced by some existing commits 
就是对已经存在的commit 进行apply (可以理解为再次提交)


一般来说,做cherry-pick的两个提交最好是相邻的如果中间间隔了几个提交,那么做cherry-pick的时候,哪些间隔的提交是不会被拿过来的


举例来说:

我现在的提交是: 68138b011d7eefbcc06c82a8577cc3935594910d 。

在此提交之后有两个新的提交:1c81f0129e62d2e79d5f2869c2b547bf17213e87 和 944cc2e483ff6ca86c9973e3cc7758c9030d17f6

我想将这两个新的提交拿过来,操作步骤如下:

(1)拿第一个提交:

[wslu@wslu-cs postgres-xc]$ git cherry-pick 1c81f0129e62d2e79d5f2869c2b547bf17213e87
Automatic cherry-pick failed.  After resolving the conflicts,
mark the corrected paths with 'git add ' or 'git rm '
and commit the result with: 


        git commit -c 1c81f0129e62d2e79d5f2869c2b547bf17213e87


[wslu@wslu-cs postgres-xc]$ 

表明有冲突了, 接着手动解决冲突。然后执行

git add xxx1.c xxx2.c    #将文件变动添加到索引

git commit --amend    #追加到当前提交,即第一个提交。

或者

git commit -c 1c81f0129e62d2e79d5f2869c2b547bf17213e87


(2)拿第二个提交:

操作步骤与第一个提交相同。


至此,完成。




你可能感兴趣的:(版本管理)