当前位置:   article > 正文

Git 的 cherry-pick 命令还没用过?快来看看它的厉害!

cherry-pick的优点

前言

最近一周在对项目的代码做一些构建工程的整改,一些通用的代码往往经常需要在代码库中的各个分支进行提交。没接触过 cherry-pick 功能时,往往需要你反复切换分支,在各个分支上进行相关内容的修改。这样的操作不仅繁琐,而且修改的地方一多,极易出错!

cherry

cherry-pick 的理解

Git 提供了 cherry-pick 的命令可以很好的解决上面场景的问题,高效、快捷!同样的适配,会该用法之后,比其他同事能够提前不少时间完成整改!

我们代码库中的一个个 commit 可以看做一个个 cherry。同一个代码库中的 commit-id 往往是唯一的,当你在分支 B 上也需要在分支 A 上的提交内容时,就可以将它们 cherry-pick 过来!

语法

  1. git cherry-pick [--edit] [-n] [-m parent-number] [-s] [-x] [--ff]
  2. [-S[<keyid>]] <commit>…
  3. git cherry-pick (--continue | --skip | --abort | --quit)

稍安勿躁,上面是该命令的语法,下面我们将通过如下的这个仓库进行示例演示:

分支状态

  • 代码库有三个分支:masterfeature-afeature-b
  • master 分支处于 d3113d5
  • feature-a基于 master 分支创建后,进行了三次提交,commit-id 分别是:
    • b09a488c011cb954e0de0df7e4a03622daeefc8d
    • 9517fc12ecfb81ecc6379dc7cc62368e239c4542
    • 6b95b589152a6e54a6a7c945d9de97eb3ecc147a
  • feature-b 特性分支b,当前处于 967181,这里是为了测试的时候方便恢复

从 feature-a 分支选择 2 个提交合入 feature-b

首先解决一个疑问,可能有同学会说,为何不采用 merge 进行分支的合并呢?

因为,并不是每个场景都是可以进行分支的合并的。比如,这两个分支就是不同的发布分支,一个是版本 1.0.0 的分支,一个是版本 2.0.0 的分支,这两个版本分支是需要独立保存的。这时候将它们进行合并就不合适。但是这时候有一个 bug 是它俩都有的,需要修复。使用 cherry-pick 就可以仅仅将你在一个分支上修复的内容筛选出来,提交到另一个分支上!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/516930
推荐阅读
相关标签