本文概述
Git中的Cherry-picking表示将某个提交从一个分支应用于另一个分支。万一你犯了一个错误并且将更改提交到了错误的分支, 但又不想合并整个分支。你可以还原提交并将其应用于另一个分支。
择优挑选的主要动机是应用一些现有提交所引入的更改。随意查看存储库历史记录中的先前提交, 并更新对当前工作树的最后一次提交的一部分更改。这个定义很简单, 但是当有人试图从一个分支中挑选一个提交, 甚至从另一个分支中挑选一个择优挑选时, 定义就更加复杂了。
Cherry-pick是一个有用的工具, 但始终不是一个好的选择。它可能会导致重复提交, 以及在某些其他情况下首选其他合并而不是挑选的情况。在某些情况下, 它是一个有用的工具。与之不同的是, 诸如merge和rebase命令之类的方式。合并和变基通常可以在另一个分支中应用许多提交。
为什么选择择优挑选
假设你正在与一个开发人员团队一起从事中型到大型项目。其他团队成员提出的一些更改, 你想将其中的一些应用到你的主项目中, 而不是全部。由于管理多个Git分支之间的更改可能成为一项复杂的任务, 因此你不希望将整个分支合并到另一个分支中。你只需要选择一两个特定的提交即可。从其他分支到你的主项目分支中进行一些更改称为“择优挑选”。
你可以挑选的一些方案:
Scenerio1:偶然在错误的分支中进行提交。
Git cherry-pick有助于应用错误分支中意外进行的更改。假设我要在master分支中进行提交, 但是由于错误, 我们在其他任何分支中进行了提交。参见下面的提交。
在上面的示例中, 我想对master分支进行提交, 但是偶然地我在新分支中进行了提交。要将新分支的所有更改更改为master分支, 我们将使用git pull, 但对于此特定提交, 我们将使用git cherry-pick命令。请参见以下输出:
在给定的输出中, 我已使用git log命令检查提交历史记录。复制要在master分支上进行的特定提交ID。现在切换到主分支, 然后在那儿挑选择优挑选。请参见以下输出:
句法:
$ git cherry-pick <commit id>
输出:
从给定的输出中, 你可以看到我已经使用git cherry-pick命令粘贴了提交ID, 并将其提交到了我的master分支中。你可以通过git log命令检查它。
方案2:进行了另一位团队成员提出的更改。
择优挑选的另一种用途是进行其他团队成员提出的更改。假设我的团队成员之一对主项目进行了任何更改, 并为主项目提出了建议。你可以在审核后愉快地选择它。
择优挑选的用法
- 它是团队协作的便捷工具。
- 在修正错误的情况下很有必要, 因为错误已在开发分支中通过提交进行了修正和测试。
- 它主要用于撤消更改和恢复丢失的提交。
- 你可以通过使用git cherry-pick而不是其他选项来避免无用的冲突。
- 当由于各个分支中的版本不兼容而无法进行完全分支合并时, 这是一个有用的工具。
- git cherry-pick用于访问引入到子分支的更改, 而无需更改分支。
评论前必须登录!
注册