CANN/cannbot-skills Git差异统计
Diff 变更统计【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills使用git diff获取 PR 变更文件列表和统计信息。1. merge-base 模式适用 skillcode-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-filterA --name-only $MERGE_BASE pr_{pr_number} # 修改文件 git diff --diff-filterM --name-only $MERGE_BASE pr_{pr_number} # 删除文件 git diff --diff-filterD --name-only $MERGE_BASE pr_{pr_number}单文件 diff# 查看某个文件的详细变更 git diff $MERGE_BASE pr_{pr_number} -- {file_path}2. triple-dot 模式适用 skillpr-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-filterA --name-only # 修改文件 git diff origin/${BASE_BRANCH}...HEAD --diff-filterM --name-only # 删除文件 git diff origin/${BASE_BRANCH}...HEAD --diff-filterD --name-only单文件 diff# 查看某个文件的详细变更 git diff origin/${BASE_BRANCH}...HEAD -- path/to/file.py3. 两种模式对比特性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),仅供参考