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

CANN/cannbot-skills Git差异统计

Diff 变更统计

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

使用git diff获取 PR 变更文件列表和统计信息。


1. merge-base 模式

适用 skill:code-review、gitcode-pr-handler、gitcode-issue-gen

先通过 merge-base 计算出基准 commit,再与 PR 分支比较。

# 前提:已计算 MERGE_BASE # MERGE_BASE=$(git merge-base base_branch pr_{pr_number})

变更统计

# 每个文件的新增/删除行数 git diff --numstat $MERGE_BASE pr_{pr_number} # 文件变更类型(新增/修改/删除/重命名) git diff --name-status $MERGE_BASE pr_{pr_number} # 变更文件列表和统计 git diff --stat $MERGE_BASE pr_{pr_number}

按类型筛选

# 新增文件 git diff --diff-filter=A --name-only $MERGE_BASE pr_{pr_number} # 修改文件 git diff --diff-filter=M --name-only $MERGE_BASE pr_{pr_number} # 删除文件 git diff --diff-filter=D --name-only $MERGE_BASE pr_{pr_number}

单文件 diff

# 查看某个文件的详细变更 git diff $MERGE_BASE pr_{pr_number} -- {file_path}

2. triple-dot 模式

适用 skill:pr-to-design-doc、gitcode-toolkit (PR 创建流程)

使用 triple-dot 语法origin/${BASE_BRANCH}...HEAD比较分支差异。

# 前提:已检出 PR 分支并确定 BASE_BRANCH

变更统计

# 每个文件的新增/删除行数 git diff --numstat "origin/${BASE_BRANCH}...HEAD" # 文件变更类型(新增/修改/删除/重命名) git diff --name-status "origin/${BASE_BRANCH}...HEAD" # 变更文件列表和统计 git diff --stat "origin/${BASE_BRANCH}...HEAD"

按类型筛选

# 新增文件 git diff "origin/${BASE_BRANCH}...HEAD" --diff-filter=A --name-only # 修改文件 git diff "origin/${BASE_BRANCH}...HEAD" --diff-filter=M --name-only # 删除文件 git diff "origin/${BASE_BRANCH}...HEAD" --diff-filter=D --name-only

单文件 diff

# 查看某个文件的详细变更 git diff "origin/${BASE_BRANCH}...HEAD" -- path/to/file.py

3. 两种模式对比

特性merge-base 模式triple-dot 模式
语法$MERGE_BASE pr_{n}origin/${BASE_BRANCH}...HEAD
前提条件需先计算 merge-base需已检出 PR 分支 + 确定 BASE_BRANCH
精确度精确到 commit 级别同样精确
适用场景需要精确变更范围(review、描述生成)本地已有 PR 分支(文档生成、PR 创建)

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/2518077.html

相关文章:

  • CANN/asc-devkit浮点转hif8 API
  • 如何通过3个步骤快速掌握Java反编译界面定制:终极指南
  • PHP版本管理的终极解决方案:3分钟掌握phpenv多版本切换技巧
  • B站直播神器:神奇弹幕全方位操作指南
  • H5P交互式视频制作终极指南:快速创建引人入胜的互动学习内容
  • 中小团队如何利用 Taotoken 统一管理多模型 API 密钥与成本
  • 一天一个开源项目(第108篇):Andrej Karpathy Skills - 用一个 CLAUDE.md 文件修复 LLM 编码的四个顽疾
  • 免费图片去水印工具有哪些?2026 在线图片去水印软件推荐指南
  • 3步掌握Internet Archive Downloader:突破数字图书馆限制的终极浏览器扩展工具
  • 终极B站直播助手:3分钟搭建智能直播间,效率提升300%
  • CANN/pypto:MatmulAllReduce与RMSNorm融合算子
  • BuckyClient性能优化:sample与aggregationInterval参数调优实践
  • ElevenLabs支持广西话吗?2024最新实测结果曝光:仅2个API参数决定能否合成地道“梧州腔”
  • 英伟达VR200机柜PCB价值量同比+233%:AI硬件主线如何被引爆?
  • 从“水本原论”的时空错位看西方哲学叙事的建构与AI时代的数据霸权
  • SABIC工程塑料创新材料解决方案与发展前景分析
  • 2026年,揭秘浙江废铝回收界的明星企业!
  • Prompt Engineering、Context Engineering 与 Harness Engineering 的异同点
  • 8355 法还原魔方 – 解魔方不用死记公式
  • 为什么92%的中小企业DeepSeek私有化项目卡在推理延迟>800ms?——基于TensorRT-LLM的4层加速调优公式(含吞吐量提升3.8倍实测数据)
  • TVA模型中的QKV投影层通道对齐缩放因子计算
  • “跳出机器人思维的局限”:如何防止人工智能退化你的大脑能力
  • NVIDIA-JetSonAGX-Thor系统安装-Ubuntu24.04(五)无人机导航开发环境配置
  • Sharp-dumpkey:三分钟获取微信数据库AES密钥的终极C解决方案
  • 效率飙升61%!南洋理工南科大新方法,让无人机边飞边“转头”,探索又快又准
  • Arm伪代码:硬件描述语言的核心特性与实践
  • DS4Windows终极指南:如何让PlayStation手柄在Windows上完美运行
  • Agentic Workflow实战:多智能体分治架构设计与落地
  • Midjourney V6 Vary(Region):区域级潜变量编辑原理与精准控制实践
  • 为什么92%的CRM项目在6个月内失去用户喜爱?揭秘Lovable CRM的3层情感化设计模型