Git中的Cherry-pick指的是将一个分支中的某个提交应用到另一个分支中。如果你犯了个错误,把一个修改提交到了错误的分支,但又不想合并整个分支,你可以撤销该提交并将其应用到另一个分支上。
主要目的是选择某个现有提交所引入的更改。Cherry-pick查看存储库历史中的先前提交,并将最后一个提交中包含的更改更新到当前工作树中。定义很直接,但当有人尝试选择一个提交,甚至从另一个分支选择时,它变得更加复杂。
Cherry-pick是一个有用的工具,但并不总是一个好的选择。它可能会导致重复提交和其他一些情况,其他合并优于选择。它是一种适用于一些情况的有用工具。
为什么要选择Cherry-Pick
假设您与一组开发人员合作进行中到大型项目。其他团队成员提出了一些更改方案,您希望将其中的一些应用于主要项目,而不是全部。由于管理多个Git分支之间的更改可能变得复杂,并且您不希望将整个分支合并到另一个分支中。您只需要选择一个或两个特定的提交。从其他分支中选择一些更改到您的主要项目分支中称为Cherry-pick。
一些可以使用Cherry-pick的情况:
情景1:在错误的分支上意外进行提交。
Git cherry-pick有助于应用在错误分支上意外进行的更改。假设我想在主分支上进行提交,但错误地放在了其他任何分支上。请参见下方提交。
语法:
$ git cherry-pick <commit id>
输出:
从给定的输出中,您可以看到我已经使用git cherry-pick命令粘贴了提交ID,并将该提交合并到了我的主分支上。您可以使用git log命令进行查看。
场景2:采纳另一个团队成员提出的更改。
cherry-picking的另一个用途是采纳另一个团队成员提出的更改。假设我的一个团队成员对主项目进行了更改,并建议将其用于主项目。您可以在审核后进行cherry-picking。
cherry-pick的用法
- 它是一个方便的工具,用于 团队协作 。
- 在 修复错误 的情况下是必需的,因为错误通常在开发分支中进行修复和测试。
- 它主要用于 撤销更改和恢复丢失的提交 。
- 通过使用git cherry-pick而不是其他选项,您可以 避免无效的冲突 。
- 当各个分支中存在不兼容版本时,无法进行完整的分支合并时,它是一个有用的工具。
- git cherry-pick用于访问对子分支引入的更改,而不更改分支本身。