Git cherry pick 命令用法
git cherry-pick 是一个很强大的命令,它允许我们通过引用选择任意 Git 提交并将其附加到当前工作分支的 HEAD。 Cherry Picking 是从一个分支中挑选一个提交并将其应用到另一个分支的行为。 git cherry-pick 可用于撤消更改。 例如,假设意外提交到错误的分支。 我们可以切换到正确的分支并将提交 “pick“ 到它应该属于的地方。
什么时候使用 git cherry pick
git cherry-pick 是一个非常有用的工具,但是我们会发现在实践中它并不总是最佳的。 Cherry Picking 在许多情况下可能会导致重复提交,因此首选传统的合并方式。 话虽如此,git cherry-pick 是适用于某些场景的方便的工具...
团队协作
很多时候,团队会发现个别成员使用或围绕相同的代码工作。 也许一个新的产品功能有一个后端和前端组件。 两个产品部门之间可能有一些共享代码。 也许后端开发人员创建了一个前端也需要使用的数据结构。 前端开发人员可以使用 git cherry-pick 来选择创建这个假设数据结构的提交。 这个选择将使前端开发人员能够继续在他们的项目中进行后续的开发。
Bug修补程序
当发现错误时,尽快的向最终用户提供修复是非常重要的。 对于一些示例场景,假设开发人员已开始开发新功能。 在新功能开发期间,他们确定了一个预先存在的错误。 开发人员创建了一个显式提交来修补这个错误。 这个新的补丁提交可以直接 “pick” 到主分支,以在它影响更多用户之前修复错误。
撤消更改并恢复丢失的提交
有时,功能分支可能会过时而不会合并到主分支中。 有时拉取请求可能会在没有合并的情况下关闭。 Git 永远不会丢失这些提交,并且通过诸如 git log 和 git reflog 之类的命令可以找到它们并对其进行恢复。
使用 git cherry pick
说了这么多,终于到了主角登场的时候了。下面我们看一下该命令是如何使用的。
为了演示如何使用 git cherry-pick,让我们假设我们有一个具有以下分支状态的存储库:
a - b - c - d Main
\
e - f - g Feature
git cherry-pick 的用法很简单,可以像下面这样执行:
$ git cherry-pick commitSha
在这个例子中,commitSha
是一个提交引用。 我们可以使用 git log 找到该提交引用。 在这个例子中,假设我们想在 main 中使用提交 f
。 首先,我们确保我们在 main 分支上工作。
$ git checkout main
然后我们使用以下命令执行 cherry-pick:
$ git cherry-pick f
执行后,我们的 Git 历史记录将如下所示:
a - b - c - d - f Main
\
e - f - g Feature
f
提交已成功 “pick” 到 main 分支
git cherry pick 命令选项
git cherry pick 后面也可以跟一些执行选项。
-edit
-edit
选项将会提示 git 在应用cherry-pick 操作之前提交消息。
--no-commit
带有 --no-commit
选项将执行 cherry pick 不会进行新的提交,而是将目标提交的内容移动到当前分支的工作目录中。
--signoff
--signoff
选项将在cherry-pick提交消息的末尾添加一个“signoff”签名行
除了这些有用的选项之外,git cherry-pick 还接受各种合并策略选项。
此外,git cherry-pick 还接受用于合并冲突解决的选项输入,这包括选项:--abort
--continue
和 --quit
等。 这些选项在 git merge 和 git rebase 中有更深入的介绍。
Cherry Picking 是一个方便且强大的命令,在某些情况下是非常有用的。 但是我们也不应滥用 cherry pick 来代替 git merge 或 git rebase。 需要 git log 命令来帮助 cherry pick 查找提交。
相关文章
使用 PowerShell 下载和安装适用于 Windows 的 Git 客户端
发布时间:2024/02/06 浏览次数:182 分类:编程语言
-
本教程将教你使用 PowerShell 下载和安装适用于 Windows 的 Git 客户端。
Git 拉取和 Git 克隆的区别
发布时间:2024/02/04 浏览次数:220 分类:Git
-
这篇简短的文章将解决 git clone 和 git pull 的区别。本教程将讨论 git clone 和 git pull 命令之间的区别。
如何在 Java 中获取整型数的各位数字
发布时间:2023/09/10 浏览次数:138 分类:Java
-
Java 提供了很多处理整数的方法。我们将学习如何从一个整数中提取和分离每一位数字。%(mod)获取给定整数的余数
Java 的 Gitignore 文件
发布时间:2023/08/02 浏览次数:184 分类:Java
-
本文通过示例讨论 Java 的 .gitignore 文件,并列出了手动创建 .gitignore 时要遵循的规则。Java .gitignore 文件概述
克隆 Git 存储库的 Python 方法
发布时间:2023/06/20 浏览次数:272 分类:Python
-
让我们看看我们可以在 Python 环境中克隆 Git 存储库的不同方法。使用 PyCharm 克隆 Git 存储库
如何在 Windows 系统中卸载 git
发布时间:2023/04/09 浏览次数:872 分类:Git
-
在这篇简短的文章中,我们将学习如何卸载 Git,以及如何在从个人计算机的目录中卸载 Git 后删除这些文件。