在 Git 中使用 Cherry-Pick 进行多次提交

Abdul Jabbar 2023年1月30日
  1. Git 中的 Git mergeGitCherry-Pick 命令之间的区别
  2. Git 中的 Cherry-picking 错误修复提交
  3. Git 中的多个 cherry-pick 提交
  4. 使用 Rebase 命令在 Git 的特定分支上选择所需的更改
在 Git 中使用 Cherry-Pick 进行多次提交

完成分支工作后,我们通常不需要合并到现有文件中。

我们经常需要从不同的分支获取一些特定的提交,而不是在一个特定的分支中处理所有的提交。这就是为什么在 Git 中使用 git-cherry pick 命令的原因。

Git 中的 Git mergeGitCherry-Pick 命令之间的区别

git merge 就像 Git cherry-pick 命令。Git cherry-pick 命令用于将另一个分支的更改同化到我们想要的分支。

在使用 merge 命令时,我们通常可以将在另一个分支中完成的所有更改同化到我们想要的分支中。

但另一方面,有时我们只需要在我们想要的分支中进行一些更改。为此,Git cherry-pick 命令是最安全的选择。

Git 中的 Cherry-picking 错误修复提交

Cherry-picking 通常可以解释为将错误修复更新到我们软件的先前版本,这意味着仅从特定分支中的数百个错误修复中获取一些明确的错误修复提交。

然后出于任何原因在将来使用该特定的错误修复提交。当团队想要修复生产或实时 Web 或桌面应用程序中的一些重要错误时,主要使用此语句或命令。

使用此命令,团队准备发布并将其部署到生产或实时环境中。

Git 中的多个 cherry-pick 提交

在某些情况下,我们希望在不同分支中同时对多个提交应用 cherry-pick。然后我们必须首先识别两个提交并在其上使用以下命令。

之后,可以使用 A 和 B 分支之间的点表示法在多个提交上完成 cherry-picking,如下面的命令所示:

$ git cherry-pick A..B

应用此命令后,commit A 将不会被同化为 cherry-pick

为了同化 commit A,我们可以使用以下语法:

$ git cherry-pick A^..B
注意
提交应该以完美的顺序放置。Commit A 应该早于 commit B。如果这不是完美的顺序,则使用的命令将失败,我们需要根据上述条件使用它。

使用 Rebase 命令在 Git 的特定分支上选择所需的更改

我们还有另一种方法可以使用 Git 中的 rebase 命令在特定分支中选择所需的更改或提交。在此方法中,我们可以使用选项 onto``rebase 命令。

我们可以在两种情况下使用 git rebase --onto

  • 第一个条件是我们有一个分支想要替换它在仓库中的父分支。
  • 其次,我们希望立即从仓库中的当前分支中删除一些提交。

假设我们的 branch 是在 D 结束的分支,这是我们想要将 C-Y 移动到的所需分支。

git reset --hard Y

git rebase --onto A B

它帮助我们从特定点开始变基或提交到所需的提交。我们可以完全管理在特定分支提交中要变基的内容和变基的位置。

作者: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

相关文章 - Git Commit