📜  Git – 樱桃采摘

📅  最后修改于: 2022-05-13 01:56:15.129000             🧑  作者: Mango

Git – 樱桃采摘

在 git 中挑选樱桃意味着从一个分支中选择一个提交并将其应用到另一个分支。这与通常将许多提交应用到另一个分支的其他方式(例如合并和回扣)形成对比。

Cherry-picking 就像rebase一样是一个先进的概念,也是一个强大的命令。如果您不想合并整个分支并且想要一些提交,则主要使用它。

执行:

假设开发人员无法识别他当前所在的分支,并且错误地提交到另一个分支而不是提交到主分支。现在要修复它,他必须先运行git show,然后保存提交,然后检查主分支,在那里应用补丁并使用相同的提交消息提交。但是所有这些都可以通过只使用一个命令来自动完成,即cherry-pick。

为了更好地理解,请参考下图:

樱桃采摘前樱桃采摘后

Cherry-pick 的命令如下:

git cherry-pick

提交哈希:提交哈希是由 Git 生成的唯一标识符。每个提交都有一个提交哈希。

Cherry-pick 的一些重要用例如下:

  1. 如果您错误地在不正确的分支中进行了提交,那么使用cherry-pick 您可以应用所需的更改。
  2. 假设一个项目的前端和后端都使用相同的数据结构。然后开发人员可以使用cherry-pick 来选择提交并将其用于他/她的项目部分。
  3. 在发现错误时,尽快将修复程序传达给最终客户至关重要。
  4. 有时组件分支可能会过时并且不会融合到主分支中并且请求可能会关闭,但是由于 git 永远不会丢失这些提交,因此可以挑选它并且它会回来。

使用 Cherry Pick 的缺点

Cherry-pick 不应该总是使用,因为它可能会导致复制提交和许多情况下,cherry-picking 会起作用,所有考虑的事情都喜欢传统的合并。此外,在来自 2 个或多个分支的提交使用各种物质更新相似的代码行并将 git cherry-pick 一个提交到另一个分支的情况下,它也会提示冲突。

如何使用樱桃采摘?

以下是在下面创建的项目中使用cherry-pick命令的逐步说明,如下所示:

第 1 步:打开git bash并创建一个名为sample的新项目并使用git init命令初始化 repo。

第 2 步:使用vi命令为项目创建一个“.txt”文件让我们说一个索引文件并将其添加到我们的示例项目中,并在按 Enter 之前进行提交并编写提交消息。

可以通过git log命令轻松检查您的提交:

第 3 步:现在假设我们有 2 个版本,因此使用git branch命令创建 2 个不同的分支并移动到一个分支,让我们使用git checkout命令说 2。

第 4 步:现在假设您想要处理一些新功能,因此创建和添加新功能文件让我们分别使用viadd命令说 feature.txt,如下所示。然后使用提交消息提交您的更改。

可以通过 git log 命令检查您的提交,如下所示:

它清楚地显示了我们的第一次提交,我们的分支 1 在那里,而在分支 2 中它已经移动得更远了,我们目前正在处理我们在分支 2 中的功能

第 5 步:现在假设我们在功能中发现了一个错误,并且我们知道同样的错误也存在于我们的 1 分支中。

现在我们正在尝试通过添加一个 fix.txt 文件来修复一些错误或问题,如下所示,让我们假设并将其添加到当前分支,即 2 并提交所需的更改。

第6步:现在, 我们已经修复了分支 2 中的错误,但我们还需要将此修复添加到我们的分支 1,但我们不想将此分支 2 合并到我们的分支 1,因为该功能可能仍在进行中。

因此,在这种情况下,我们可以挑选这个特定的提交。为此,只需复制上图中突出显示的哈希值,然后使用 checkout 移动到分支 1,然后使用命令cherry-pick并粘贴我们刚刚复制的哈希。

从上面可以清楚地看出,然后我们注意到在进行樱桃采摘之前我们只有 index.txt,但现在我们的第一个分支中也有 fix.txt 文件。

现在,如果我们尝试检查git log –oneline ,我们将能够看到提交也来自分支 1。