/explain-changes 是一个斜杠命令,用于为任何 git diff 生成 AI 驱动的解释。与解释已完成任务更改的 解释更改按钮 不同,此命令允许您解释任意两个 git 引用之间的更改——提交、分支、标签、PR、暂存更改或您的工作目录。
/explain-changes 命令需要一个 git 仓库。请确保您正在使用已用 git 初始化的目录。
对于 PR 解释,您需要安装并验证 GitHub CLI (gh)。对于 GitLab 合并请求解释,您需要安装并验证 GitLab CLI (glab)。 与解释更改按钮不同,此命令不需要启用检查点,因为它直接使用 git 引用。使用命令
在聊天输入框中输入 /explain-changes。Cline 将:
- 分析您的 git 历史记录以了解存在的更改
- 通过读取相关文件收集上下文
- 确定合适的 git 引用进行比较
- 生成带有流式内联解释的 diff 视图
工作原理
当您使用 /explain-changes 时,Cline 会:
- 收集上下文:运行 git 命令以了解您的仓库状态
- 识别更改:确定引用之间哪些文件发生了更改
- 读取相关文件:构建上下文以提供更好的解释
- 调用 generate_explanation:创建 diff 视图并流式传输解释
- 显示结果:打开带有内联评论的多文件 diff
解释最近一次提交
最常见的用例 - 了解最近一次提交中的更改内容
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 的全部功能
- 审查评论激发了改进的想法
在底层,/explain-changes 使用 generate_explanation 工具并带有以下参数
| 参数 | 描述 | 示例 |
|---|
title | diff 视图的描述性标题 | “提交 abc123 中的更改” |
from_ref | “之前”状态的 Git 引用 | HEAD~1, main, origin/main |
to_ref | “之后”状态的 Git 引用(可选) | HEAD, develop |
如果省略 to_ref,则工具会与工作目录进行比较。
提供更好解释的技巧
-
具体化:不要只输入
/explain-changes,告诉 Cline 您想解释什么。“解释 PR #42 中的身份验证更改”比“解释 PR #42”提供更好的上下文。
-
询问意图:AI 不仅可以解释更改了什么,还可以解释为什么更改。提出后续问题,例如“这是为了解决什么问题?”
-
与其他命令结合使用:在调查问题后使用
/explain-changes 来理解潜在的修复方案,然后继续使用 Cline 来实施改进。
-
用于学习:在适应新的代码库时,对重要的 PR 或提交使用
/explain-changes 来了解功能是如何构建的。