弱水三千,只取一瓢 —— git cherry-pick


场景

双主线的模式 AB,独自演进,存在一个共同的 bug,在 dev 上面修改好 bug 之后,需要合并到 AB 中,并且 A、B、dev 是一直在演进的,不能直接合并入 AB。

解决

git checkout A // 切换到 A 分支
git cherry-pick C1 // 拣选 C1 并合并到 A 分支
git checkout B  // 切换到 B 分支
git cherry-pick C1  // 拣选 C1 并合并到 B 分支

cherry-pick 捡樱桃,这名字很可爱:)。commit 就像一地的樱桃,我们需要做的就是去捡起大大小小的樱桃。

$ git cherry-pick <commitHash>

获得需要合并的 commit 值,切换到待合并的分支,执行 cherry-pick

详细参数

--quit                      终止反转或拣选操作
--continue                  继续反转或拣选操作
--abort                     取消反转或拣选操作
--skip                      跳过当前提交并继续
--cleanup <模式>             设置如何删除提交说明里的空格和#注释
-n, --no-commit             不要自动提交
-e, --edit                  编辑提交说明
-s, --signoff               添加 Signed-off-by: 签名
-m, --mainline              <父编号>选择主干父提交编号
--rerere-autoupdate         如果可能,重用冲突解决更新索引
--strategy                  <策略> 合并策略
-X, --strategy-option       <选项> 合并策略的选项
-S, --gpg-sign[=<key-id>]   GPG 提交签名
-x                          追加提交名称
--ff                        允许快进式
--allow-empty               保留初始化的空提交
--allow-empty-message       允许提交说明为空
--keep-redundant-commits    保持多余的、空的提交

红尘过往,弱水三千,只取一瓢。
git 的 cherry-pick 是简单明确的,不会出错。而你我的生活,从没有平行宇宙,这一瓢水又从何而取…


文章作者: Yao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Yao !
 上一篇
从 Tailwind 看 css 中的原子化流变 从 Tailwind 看 css 中的原子化流变
回不到的过去,忘不掉的人。某个路口,转角再次遇见,她还是她吗,你还是你吗? 禅意花园禅意花园,做前端的人或多或少都听说过项目。一样的 HTML 结构,用不同的 css 去装饰,形成截然不同的页面风格,探索 css 之美。html css
2020-12-14
下一篇 
回到过去的一万种方式 —— git 时光机 回到过去的一万种方式 —— git 时光机
时光无法倒流,git 却让我们有机会修改历史 查看修改历史,代码回退是开发中经常用到的命令,但是很多时候,我们并不是非常明确其中的区别。这篇博客尝试说清楚其中的区别。 git checkoutgit checkout hotfix //
2020-12-02
  目录