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

从git 一个分支cherry-pick apk 到另外一个分支!

1.找到原分支的hash值

在原分支下面执行
git log --oneline
b35b237c9f4

2.在新分支上执行

git cherry-pick b35b237c9f4

error: could not apply b35b237c9f4… 修复缺陷
hint: After resolving the conflicts, mark them with
hint: “git add/rm ”, then run
hint: “git cherry-pick --continue”.
hint: You can instead skip this commit with “git cherry-pick --skip”.
hint: To abort and get back to the state before “git cherry-pick”,
hint: run “git cherry-pick --abort”.
hint: Disable this message with “git config set advice.mergeConflict false”
warning: Cannot merge binary files

绝大多数情况下,如果两个分支都对同一个二进制文件(如 .apk、.jar、.png 等)进行过修改,cherry-pick 或 merge 时注定会发生冲突。
为什么二进制文件注定会冲突?
Git 是一个基于文本行的版本控制系统。对于代码等文本文件,Git 可以对比行与行的差异并尝试自动合并。
但是对于 APK 这样的二进制文件:
Git 无法读取其内部结构,也无法进行“按行合并”。
只要目标分支(你当前所在的物理分支)和源分支(你提取 commit 的分支)上的这个 APK 文件自它们分叉以来都发生过任何改动,Git 就无法判断应该保留哪一个,因此一定会报 Cannot merge binary files(无法合并二进制文件)并产生冲突。

如何快速解决这个冲突?
由于是二进制文件,你无法像普通文本文件那样打开它去手动修改冲突标记(<<<<<<< 等)。你只能做“二选一”的抉择:
保留当前分支的版本(–ours)
采用你正在 cherry-pick 的那个提交里的新版本(–theirs)
既然你的提交注释是“修复一些缺陷”,你通常是需要使用 cherry-pick 带来的新 APK 覆盖旧 APK。
你可以按照以下步骤解决:

  1. 采用 cherry-pick 提交中的新 APK 文件(推荐)
    在冲突状态下,运行以下命令,直接使用“对方”(即你要 cherry-pick 的提交 b35b237c9f4)的 APK 文件:
    git checkout --theirs 1.apk
  1. 将该文件标记为已解决(暂存)
    git add 1.apk
  1. 继续完成 cherry-pick

git cherry-pick --continue

此时会弹出编辑器让你确认提交信息,保存并退出即可顺利完成同步.

Linux 终端中默认的 nano 编辑器。你可以通过以下步骤保存并退出:
快捷方式(最推荐,一步到位):
按键盘上的 Ctrl + X(退出)。
此时屏幕最下方会询问:Save modified buffer?,按键盘上的 Y 键(表示 Yes 确认保存)。
接着屏幕会显示文件名 .git/COMMIT_EDITMSG,直接按 Enter(回车键) 确认。
此时编辑器就会自动保存并关闭,Git 也会继续完成 cherry-pick 提交。

常规方式(分步操作):
按 Ctrl + O(写入/保存,即底部菜单的 ^O Write Out)。
按 Enter(回车键) 确认文件名。
按 Ctrl + X(退出,即底部菜单的 ^X Exit)。
(注:底部菜单中的 ^ 符号代表键盘上的 Ctrl 键。)

为什么还需要 git push?
所有的操作目前只在“本地”:
你刚才做的 git cherry-pick、解决冲突、以及在 nano 编辑器里保存并退出,这些操作全部都只发生在你的本地电脑上(你的本地 master 分支)。
远程仓库还没有更新:

git push origin HEAD:refs/for/master

http://www.jsqmd.com/news/1238044/

相关文章:

  • LangServe 完整入门介绍
  • 牟平区柴油发电机出租公司推荐,应急发电机租赁怎么选不踩坑|2026公司推荐 - mobible
  • 權威發佈|亨得利香港**售後地址2026年7月最新版(附熱線) - 亨得利官方
  • 【重磅】欧米茄嘉兴**网点地址与售后服务热线2026年7月最新 - 欧米茄服务中心
  • YOLOv12涨点改进| CVPR 2026 | 独家特征融合改进篇 | 引入SAFusion语义对齐融合模块,助力无人机航拍、遥感影像、小目标检测、语义分割、实例分割、目标跟踪任务,有效涨点
  • 2026年东北区域激光维修工程师品牌公司推荐实用参考 - 品牌优推
  • Go 金融系统的分布式对账和资金安全的工程保障
  • 陕西区域A类防火玻璃隔断厂家如何选实用选型攻略 - 品牌优推
  • Java泛型类实现与内存泄漏隐患
  • Cargo 与容器构建:多阶段构建把镜像从 2GB 压缩到 50MB 的实操
  • 东莞甲醛检测公司怎么选:只做检测不除醛的专业CMA资质实验室——国慷测研CMA甲醛检测及公共卫生检测 - CMA甲醛检测中心
  • 金融风控数据分析:AI 异常交易检测模型的工程落地实录
  • 2026烟台市本地发电机租赁避坑指南:附近发电机出租公司哪家好?5个挑选要点帮你绕开90%的坑 - mobible
  • 关于十年后就业的随想
  • 2026中小制造企业选浙江钣金喷涂一体化实用参考指南 - 奔跑123
  • Go 高频交易模拟:纳秒级定时的实现与精度限制分析
  • 一次 Mapreduce job 作业的 AI 分析
  • 2026年福建区域水性聚氨酯地坪漆公司口碑实用参考指南 - 热点品牌推荐
  • 2026收纳箱品牌哪家好 综合实力**参考汇总 - 奔跑123
  • SaaS 后台的 AI UI 生成:数据表格与表单的智能布局策略
  • 雷达北京2026年7月最新**网点地址与客户服务热线公告,售后信息全面公示 - 亨得利官方服务中心
  • 2026 本地采购人员宁波镀锡工厂选取注意要点 - 奔跑123
  • 2026年天津精品搬家推荐公司电话 本地靠谱服务商查询指南 - 热点品牌推荐
  • 湖州甲醛检测公司怎么选:只做检测不除醛的专业CMA资质实验室——国慷测研CMA甲醛检测及公共卫生检测 - CMA甲醛检测中心
  • AI 数据驱动的增长实验:A/B 测试从设计到决策的全流程
  • [具身智能-610]:Linux EGL Preview(嵌入式相机本地 HDMI 预览,适配你 RDK X5 + TROS/mipi_cam 场景)
  • 2026湖州房屋渗漏水检测公司口碑榜**推荐-正规防水补漏一站式维修:卫生间/厨房/阳台/屋顶/地下室/屋顶/天沟渗漏水精准测漏补漏上门 - 安佳防水
  • 2026年实验室氢气订购厂家哪家正规 实用选购参考指南 - 热点品牌推荐
  • 新店GEO优化快速起量
  • 从零搭建网页RAG检索系统,保姆级向量库落地教程