git cherry-pick的具体使用

 更新时间:2024年09月10日 10:11:57   作者:代码里的小猫咪  
Git cherry-pick用于将特定提交从其他分支应用到当前分支,常用于多分支开发中的部分提交转移,本文就来介绍一下解决方法,感兴趣的可以了解一下

1. 基本介绍

git cherry-pick 用于从其他分支中选择一个或多个特定的提交(commit)并将它们应用到当前分支上。

2. 使用场景

在我们进行多分支开发时,将代码从一个分支转移到其他分支是非常常见的。

若需要将一个分支中的所有代码合并,使用 git merge。

若需要将一个分支中的部分提交 commit 变动,使用 git cherry-pick。此时引入特定更改或功能到当前分支时非常有用。

3. 基本用法

1、选择单个提交

git cherry-pick <commit-hash>

2、选择一系列提交

闭区间 [ 1,3 ]

git cherry-pick <commit-hash1>^..<commit-hash3>

开区间 ( 1,3 ] 

git cherry-pick <commit-hash1>..<commit-hash3>

3、选择多个非连续提交

git cherry-pick <commit-hash1> <commit-hash3> <commit-hash5>

注意⚠️:选择多个提交时,必须按照正确的顺序进行,提交 1 必须早于提交 2,否则命令将失败,但不会报错。 

4. 举个例子🌰

假如我们在 'feature' 分支上有以下提交历史:

(feature):A - B - C - D - E

现在在 'main' 分支上:

(main):F - G

此时我们需要将 ' feature' 分支上的 C 和 D 提交应用到 'main' 分支上,使用:

git checkout main
git cherry-pick C D

这样,'main' 分支的提交历史变成:

(main):F - G - C' - D'

其中 C' 和 D' 是应用于 'main' 分支的 C 和 D 提交,提交内容是一样的,但是分支 hash 值是不同的。

git cherry-pick 命令的参数不一定是提交的 hash 值,分支名也 ok,表示转移该分支的最新提交。

git cherry-pick feature
# 等价于
git cherry-pick E

5. 代码冲突

如果在 cherry-pick 过程中出现冲突时,Git 会暂停操作,让我们手动解决冲突。

1、解决冲突之后,需要继续 cherry-pick 过程:

git add <resolved-files>
git cherry-pick --continue

2、放弃 cherry-pick 操作,回到操作前

git cherry-pick --abort

3、放弃 cherry-pick 操作,但是不回到操作前(不推荐)

git cherry-pick --quit

到此这篇关于git cherry-pick的具体使用的文章就介绍到这了,更多相关git cherry-pick内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Git 命令使用技巧提供工作效率

    Git 命令使用技巧提供工作效率

    这篇文章主要介绍了Git 命令使用技巧提供工作效率的相关资料,需要的朋友可以参考下
    2016-09-09
  • 微信 小程序Demo导入详细介绍

    微信 小程序Demo导入详细介绍

    这篇文章主要介绍了微信 小程序Demo导入详细介绍的相关资料,需要的朋友可以参考下
    2016-09-09
  • 访客站点停留时间和页面停留时间的实现方案

    访客站点停留时间和页面停留时间的实现方案

    这篇文章主要介绍了访客站点停留时间和页面停留时间的实现方案,需要的朋友可以参考下
    2015-01-01
  • Visual Studio安装git插件的方法步骤

    Visual Studio安装git插件的方法步骤

    这篇文章主要介绍了Visual Studio安装git插件的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Mac安装软件时提示已损坏的完美解决方法

    Mac安装软件时提示已损坏的完美解决方法

    从网上下载的SecureCRT、Principle等设计软件,以及输入法等常用软件,安装时可能会提示“已损坏,移至废纸篓”这类信息,根本无法打开,这篇文章主要介绍了Mac安装软件时提示已损坏的解决方法,需要的朋友可以参考下
    2022-07-07
  • 如何通过memberlist库实现gossip管理集群及集群数据交互问题

    如何通过memberlist库实现gossip管理集群及集群数据交互问题

    这篇文章主要介绍了通过memberlist库实现gossip管理集群以及集群数据交互,本文介绍了memberlist库的简单用法,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Git远程仓库配置SSH的实现(以github为例)

    Git远程仓库配置SSH的实现(以github为例)

    本文主要介绍了Git远程仓库配置SSH的实现(以github为例),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Linux/Ubuntu Git从安装到使用的方法步骤

    Linux/Ubuntu Git从安装到使用的方法步骤

    这篇文章主要介绍了Linux/Ubuntu Git从安装到使用的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 码云git图文使用详解教程

    码云git图文使用详解教程

    这篇文章主要介绍了码云git图文使用详解教程,需要的朋友可以参考下
    2020-11-11
  • 解决Git merge时报错:refusing to merge unrelated histories问题

    解决Git merge时报错:refusing to merge unrelated histories问题

    在使用Git进行分支合并时,可能会遇到"refusing to merge unrelated histories"错误,这是因为尝试合并的两个分支具有不相关的历史记录,解决方法包括使用--allow-unrelated-histories参数来合并分支,保留各自历史,或者直接用一个分支的内容覆盖另一个分支
    2024-10-10

最新评论