当前位置: 首页 > article >正文

cherry-pick使用

这里写自定义目录标题

  • cherry-pick命令详解
  • 详细流程
    • 具体命令
  • 实战

cherry-pick命令详解

无论项目大小,当你和一群程序员一起工作时,处理多个 Git 分支之间的变更都会变得很困难。有时,与其把整个 Git 分支合并到另一个分支,不如选择并移动几个特定的提交。这个过程被称为 “挑拣”, 即 Cherry-pick。

详细流程

  • 拉取远程变更到本地分支。使用 git fetch 远程源,在IDEA中可以设置多个远程分支。
    在这里插入图片描述
  • 回到要合并的分支。你可能会通过运行 git checkout 工作的分支 来做到这一点。
  • 找到要拉入分支的提交。转到 git log,为每条提交获取唯一的提交哈希值。
    • 找到你想要挑选的hash值
  • “Cherry-pick” 您想要加入该分支的提交。运行以下命令:git cherry-pick 。这将只把这个提交拉入当前分支。
  • (可选) 在某些情况下, 可能需要手动解决冲突.
  • 像往常一样推送这个分支: git push 远程源 分支名

具体命令

在 cherry-pick 命令的最简单形式中,你只需使用要集成到当前 HEAD 分支中的提交的 SHA 标识符即可。

要获取提交哈希值,可以使用 git log 命令:

git log --oneline

知道 commit 的哈希值后,就可以使用 cherry-pick 命令。

语法如下:

git cherry-pick <commit sha>

可以是多个

例如:

git cherry-pick  85c5532

这将把指定的更改专用于当前已签出的分支。

如果你想做进一步修改,也可以指示 Git 在你的工作副本中添加提交改动。

语法如下:

git cherry-pick <commit sha> --no-commit

如:

git cherry-pick 85c5532 --no-commit

如果您想同时选择多个提交,请添加它们的提交哈希值,中间用空格隔开:

git cherry-pick hash1 hash3

在挑选提交时,不能使用 git pull 命令,因为它会从一个版本库中获取提交并自动合并到另一个版本库中。cherry-pick 命令是专门用来避免这种情况发生的工具;取而代之的是使用 git fetch,它会获取提交但不应用它们。

实战

从 dev 挑选数个 commits 进行合并:

git cherry-pick  85c5532  366a196  53ebe44 --no-commits

然后, 可能第一个合并会出现冲突, 手动解决冲突, 并git add 具体文件或 git rm.

继续 cherry-pick:

git cherry-pick --continue

第二个提交可能没有冲突, 直接合并.

第三个提交可能又有冲突, 手动解决冲突, 并git add 具体文件git rm 文件

继续 cherry-pick:

git cherry-pick --continue

最后再执行 git cherry-pick --continue, 会提示你没有在运行的任务.

此时, 可以提交:

git push 远程源 分支名

http://www.kler.cn/a/512811.html

相关文章:

  • 1688 满足跨境业务需求而提供的一组 API 接口
  • 【JavaSE】(8) String 类
  • Java虚拟机面试题:内存管理(中)
  • 1.写在前面
  • JS基础(5):运算符和语句
  • 4 AXI USER IP
  • 【wiki知识库】07.用户管理后端SpringBoot部分
  • 日本工作面试基本礼仪-一篇梗概
  • 商城系统中的常见 BUG
  • # [0114] Task01 《数学建模导论》P1 解析几何与方程模型
  • html与css学习笔记(2)
  • 微信小程序中实现背景图片完全覆盖显示,可以通过设置CSS样式来实现
  • Spring MVC:HTTP 请求的参数传递2.0
  • 【Python】JSON
  • K8S中Pod控制器之Job控制器
  • 一文玩转生成式AI新星DeepSeek-V3,带你5分钟配置自己的随身AI
  • 【QT】已解决:Qt4.11.0无法使用MSVC编译器问题
  • Python入门:3.Python的输入和输出格式化
  • 【C语言篇】深入探究 C 语言指针:揭开指针变量与地址的神秘面纱
  • 【Elasticsearch】filterQuery过滤查询
  • 计算机网络 (52)秘钥分配
  • 家用路由器:WAN口和LAN口区别?
  • 华为OD机试E卷 --矩阵扩散--24年OD统一考试(Java JS Python C C++)
  • c++解决常见内存泄漏问题——智能指针的使用及其原理
  • 牛客周赛76:JAVA
  • 华为 Ascend 平台 YOLOv5 目标检测推理教程