跳过主要内容
/explain-changes 是一个斜杠命令,用于为任何 git diff 生成 AI 驱动的解释。与解释已完成任务更改的 解释更改按钮 不同,此命令允许您解释任意两个 git 引用之间的更改——提交、分支、标签、PR、暂存更改或您的工作目录。

要求

/explain-changes 命令需要一个 git 仓库。请确保您正在使用已用 git 初始化的目录。
对于 PR 解释,您需要安装并验证 GitHub CLI (gh)。对于 GitLab 合并请求解释,您需要安装并验证 GitLab CLI (glab) 与解释更改按钮不同,此命令需要启用检查点,因为它直接使用 git 引用。

使用命令

在聊天输入框中输入 /explain-changes。Cline 将:
  1. 分析您的 git 历史记录以了解存在的更改
  2. 通过读取相关文件收集上下文
  3. 确定合适的 git 引用进行比较
  4. 生成带有流式内联解释的 diff 视图

工作原理

当您使用 /explain-changes 时,Cline 会:
  1. 收集上下文:运行 git 命令以了解您的仓库状态
  2. 识别更改:确定引用之间哪些文件发生了更改
  3. 读取相关文件:构建上下文以提供更好的解释
  4. 调用 generate_explanation:创建 diff 视图并流式传输解释
  5. 显示结果:打开带有内联评论的多文件 diff

用例

解释最近一次提交

最常见的用例 - 了解最近一次提交中的更改内容
/explain-changes
Cline 将检查 HEAD 并将其与 HEAD~1 进行比较,解释该提交中的所有更改。 何时使用:
  • 从队友那里拉取更改后
  • 在推送之前查看自己的工作
  • 了解合并提交带来的内容

解释未提交的更改

在提交之前了解您的进行中的更改
/explain-changes for my uncommitted work
Cline 将 HEAD 与您的工作目录进行比较,解释所有修改过的文件。 何时使用:
  • 在暂存更改之前确保它们是完整的
  • 长时间编码后记住您更改了什么
  • 在创建提交之前验证更改

解释暂存的更改

准确地查看您即将提交的内容
/explain-changes for my staged changes
Cline 只检查您使用 git add 暂存的更改。 何时使用:
  • 提交前的最后审查
  • 当您暂存了部分更改并想进行验证时
  • 确保您没有意外暂存不相关的文件

解释特定提交

了解历史记录中的任何提交
/explain-changes for commit abc123
或通过提交信息
/explain-changes for the commit that added authentication
Cline 将找到提交并解释它更改了什么。 何时使用:
  • 调查何时引入了错误
  • 了解历史决策
  • 学习如何实现某个功能

解释一系列提交

一次了解多个提交
/explain-changes for the last 3 commits
或特定范围
/explain-changes from v1.0.0 to v1.1.0
Cline 比较端点并解释它们之间的所有更改。 何时使用:
  • 了解版本发布中的更改内容
  • 审查一系列相关提交
  • 在离开项目一段时间后赶上进度

解释拉取请求

获取任何 PR 的 AI 解释
/explain-changes for PR #42
Cline 使用 GitHub CLI 获取 PR 详细信息并解释更改。 何时使用:
  • 审查他人的 PR
  • 在批准之前了解 PR
  • 从开源项目中的 PR 中学习
  • 准备提供 PR 反馈

解释分支差异

比较任意两个分支
/explain-changes between main and feature-branch
或者查看功能分支上的更改
/explain-changes for everything on my-feature that's not in main
何时使用
  • 合并功能分支之前
  • 了解分支之间的分歧
  • 规划合并或 rebase 策略
  • 审查同事一直在做什么

解释特定文件的更改

专注于特定文件或目录
/explain-changes for src/auth in the last 5 commits
Cline 过滤 diff 以仅显示相关的更改。 何时使用:
  • 了解特定模块的更改
  • 跟踪关键文件的修改
  • 了解特定功能如何演变

解释自某个标签以来的更改

了解自某个版本以来的更改
/explain-changes since v2.0.0
Cline 将标签与 HEAD 进行比较,并解释所有后续更改。 何时使用:
  • 准备发布说明
  • 了解自部署以来的新增内容
  • 识别用于变更日志的更改

解释合并提交

了解合并带来的内容
/explain-changes for the merge from feature-x
Cline 解释所有被合并的更改。 何时使用:
  • 合并大型功能分支后
  • 了解合并冲突解决更改了什么
  • 审查其他人合并到 main 中的内容

解释暂存区的更改

查看暂存区中的内容
/explain-changes for my stashed changes
Cline 检查 stash@ 并解释其内容。 何时使用:
  • 应用暂存之前
  • 决定是保留还是丢弃暂存区内容
  • 记住几天前暂存了什么

交互式评论

就像 解释更改 按钮一样,生成的评论是完全交互式的

回复评论

直接在任何评论线程中提出后续问题
  • “为什么重构了这个函数?”
  • “这个新参数的目的是什么?”
  • “这会引起任何重大更改吗?”
  • “这个更改是否向后兼容?”
AI 会提供上下文感知的解释,理解代码和更广泛的更改。

移至主聊天窗口

点击任何评论线程的标题区域,将该对话移至 Cline 的主聊天窗口。这在以下情况下很有用:
  • 您希望 Cline 进行额外的更改
  • 讨论揭示了需要进一步调查的问题
  • 您想继续使用 Cline 的全部功能
  • 审查评论激发了改进的想法

generate_explanation 工具

在底层,/explain-changes 使用 generate_explanation 工具并带有以下参数
参数描述示例
titlediff 视图的描述性标题“提交 abc123 中的更改”
from_ref“之前”状态的 Git 引用HEAD~1, main, origin/main
to_ref“之后”状态的 Git 引用(可选)HEAD, develop
如果省略 to_ref,则工具会与工作目录进行比较。

提供更好解释的技巧

  1. 具体化:不要只输入 /explain-changes,告诉 Cline 您想解释什么。“解释 PR #42 中的身份验证更改”比“解释 PR #42”提供更好的上下文。
  2. 询问意图:AI 不仅可以解释更改了什么,还可以解释为什么更改。提出后续问题,例如“这是为了解决什么问题?”
  3. 与其他命令结合使用:在调查问题后使用 /explain-changes 来理解潜在的修复方案,然后继续使用 Cline 来实施改进。
  4. 用于学习:在适应新的代码库时,对重要的 PR 或提交使用 /explain-changes 来了解功能是如何构建的。