cherry-pick
cherry-pick
前言
复制其他分支的最新代码我们常用git merge 来合并解决。但是合并其他分支某一次的提交也是我们常见的需求。
cherry-pick则可以解决这个问题。
使用情景
feat_order分支有5次提交记录分别为A,B,C,D
test分支有E,F,G三次提交
我们如何合并feat_order分支的某次提交到test分支呢?
git checkout feat_order
git log
<HashA>
<HashB>
<HashC>
<HashD>
git checkout test
git cherry-pick <HashA> // 迁移feat_order分支的HashA的提交到test分支
上述步骤就完成了feat_order分支到test分支的迁移。
此时test分支的提交记录就变成:
E,F,G,A
feat_order的提交记录不变还是A,B,C,D
如何使用
git cherry-pick <HashA> // 复制原来的提交信息到当前分支
git cherry-pick <HashA> <HashB> <HashC> // 复制原来的多次提交信息到当前分支
git cherry-pick -n <HashA> // 只更新工作区和暂存区,不产生新的提交
git cherry-pick <HashA> -x 'xx' // 在原commit -m''的信息后面追加一行描述信息,方便以后查询此提交如何产生
git cherry-pick <HashA> -s // 添加操作者的签名 谁进行了此操作
git cherry-pick --abort // 发生冲突后,放弃合并,回到操作前
git cherry-pick --continue // 发生冲突后,第一步将修改的文件重新加入暂存区(git add.),第二步使用此命令继续执行。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!