【Git】Git cherry-pick

Git cherry-pick

1.指令效果与基本用法

在 Git 的文档中,对于cherry-pick指令的描述如下:

git cherry-pick 命令用来获得在单个提交中引入的变更,然后尝试将作为一个新的提交引入到你当前分支上。 从一个分支单独一个或者两个提交而不是合并整个分支的所有变更是非常有用的。

该命令的基本语法如下:

复制代码
git cherry-pick <commit-hash>

其中,<commit-hash>是要应用的提交的哈希值,其可以有两种取值:

  1. 提交对象的哈希值:此时会将该提交对象中的变更,作为一个新的提交引入当前分支
  2. 分支名 :此时会将该分支上的最新提交,作为一个新的提交引入当前分支

当然,也可以同时应用多个提交,只需要提供多个值:

复制代码
git cherry-pick <commit-hash1> <commit-hash2> <commit-hash3> ...

这将按照指定的顺序将所有指定的提交应用于当前分支。

2.cherry-pick的使用场景

cherry-pick命令常用于以下场景:

  • 合并单个提交 :当我们只想应用某个分支上的一个提交到当前分支时,可以使用cherry-pick命令,并给出对应的commit hash值,而不需要合并整个分支。
  • 修复bug :当我们在一个分支上修复了一个bug,并希望将这个修复应用到其他分支上时,可以使用cherry-pick命令,指定bug分支名即可(当然修复需要在一个提交中,因为指定分支名时,仅能将最新提交提取出来)。
  • 提取特定功能:当我们在一个分支上开发了一个新功能,并希望将该功能应用到其他分支上时,可以使用cherry-pick命令,同样指定分支名即可(当然新功能需要在一个提交中,因为指定分支名时,仅能将最新提交提取出来)。

3.cherry-pick的注意事项

在使用cherry-pick命令时,有一些注意事项需要了解:

  • cherry-pick会创建一个新的提交,因此可能会引入冲突。如果发生冲突,需要手动解决冲突后再继续应用提交。
  • cherry-pick不会自动合并提交的作者和提交日期,而是使用当前分支的作者和日期。如果需要保留原有的作者和日期信息,可以使用--no-commit选项,并手动修改提交信息后再提交。

4.解决冲突

cherry-pick提交时,通常会面临冲突,特别是如果cherry-pick的目标提交修改了与当前分支相同的文件。在这种情况下,需要在成功应用更改之前解决冲突。

cherry-pick期间发生冲突时,Git 会暂停进程并提示解决冲突。这时可以使用 git status 命令查看有冲突的文件,并在编辑器中解决冲突

解决冲突之后,保存更改,并使用git add命令将文件添加到暂存区。然后,您可以使用以下命令继续 cherry-pick 进程:

bash 复制代码
$ git cherry-pick --continue

这将应用更改并完成 cherry-pick 进程。

5.应用多个提交时跳过某个提交

可以使用git cherry-pick --skip命令跳过 cherry-pick 过程中的一个提交。此命令将跳过当前的提交并继续下一个提交。

6.撤销 cherry-pick 操作

在某些情况下,你可能需要撤销 git cherry-pick 操作。这时,你可以使用 git cherry-pick --abort 命令。该命令将中止 cherry-pick 操作并还原过程中所做的任何更改。

相关推荐
naice33 分钟前
我对github的图片很不爽了,于是用AI写了一个图片预览插件
前端·javascript·git
会飞的青蛙7 小时前
GIT 配置别名&脚本自动化执行
前端·git
权咚2 天前
阿权的开发经验小集
git·ios·xcode
nightunderblackcat3 天前
新手向:Git下载全攻略
git
若无_3 天前
了解 .husky:前端项目中的 Git Hooks 工具
前端·git
想当花匠的小码农3 天前
Git 仓库“减肥”指南:从检测、清理到同步的全流程实践
git
R_.L3 天前
Git : 基本操作
git
python_1364 天前
git常见冲突场景及解决办法
git
洛小豆4 天前
Git 打标签完全指南:从本地创建到远端推送
前端·git·github