iOS 代码比对变更
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_9a66f56b/git-diff。
技能介绍
要解决什么问题
版本发布或 PR 评审时,你往往需要的是「从 tag A 到 tag B」的净差异,而不是分别打开两个 commit 各自改了什么。对 iOS 工程来说,还要把 Swift/Objective-C 类、XIB/Storyboard、.plist 以及 .xcassets 里的图库变动拆开看;若把 Pods/、build/ 里的 diff 一并统计,结论会被第三方依赖噪声淹没。
技能如何工作
技能在本地 git 仓库上,以起点 + 终点(commit hash 或 tag)计算 git diff 的净变化,并做分层过滤与归类:
- 排除第三方目录:忽略
Pods/、build/、.build/下的文件,只分析业务代码。 - 类文件:
.swift;混编时还包括.h/.m/.mm,输出带扩展名的文件名(含可能的 Bridging Header)。 - UI 与配置:
.xib、.storyboard、.plist、.html。 - 图片资源:按 imageset / appiconset 维度聚合多尺寸资源,跳过各类
Contents.json。
每个分类按 Git 语义标注 A/D/M/R(新增、删除、修改、重命名),并在分类末尾给出净变化汇总(例如类文件 -3 +14)。
边界与注意点
- 大仓库:务必先排除 Pods/build,否则 diff 体积与误读风险都会上升。
- 重命名:Git 有时会把重命名呈现为「删除 + 新增」,需结合路径相似性自行判断是否为 R。
- 同名不同路径:删除旧路径再在新路径新增同名文件,应计为删除与新增,不算修改。
- 适用栈:Xcode 工程,Swift / Objective-C / 混编;依赖管理常见为 CocoaPods 或 SPM(分析对象仍是项目自身代码,而非 Pod 源码树)。
使用场景
- 发版前给定起点与终点 tag,需要生成仅含业务代码的类、UI 与图库净变更清单
- PR 评审时要对照两个 commit 区间,排除 Pods/build 后核对 Swift/OC 类文件改动范围
- 口头描述「从 commit A 到 B 改了什么」,需要按 A/D/M/R 分类并附各类净变化汇总
- 混编 Xcode 工程需同时统计 .swift 与 .h/.m/.mm,并按 imageset 维度合并图片变动
适合人员
- 负责 iOS 版本说明撰写、需按 tag 区间整理类与资源变动摘要的发布协调同学
- 维护 CocoaPods 混编仓库、PR 评审时要快速剥离第三方目录只看业务 diff 的 iOS 工程师
- 带 QA 做回归范围评估、需要把 xib/storyboard/plist 与图库变更单独列出的移动端测试负责人
- 接手他人分支后核对「上一版到当前 HEAD」净差异、避免误读 Pods 大规模更新的技术负责人