> ## Documentation Index
> Fetch the complete documentation index at: https://cat.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Git 提及

Git 提及让你可以将仓库的历史和更改直接引入与 Cline 的对话中。你可以使用 `@git-changes` 引用未提交的更改，或使用 `@[commit-hash]` 引用特定提交。

当你在聊天中输入 `@` 时，可以从菜单中选择"Git 更改"或直接输入 `@git-changes`。对于特定提交，输入 `@` 后跟提交哈希（至少 7 个字符）。Cline 将立即看到 git 状态、差异、提交消息和其他相关信息。

当我试图理解代码更改或排查最近提交引入的问题时，我经常使用 git 提及。不再需要尝试复制粘贴差异或提交日志，我只需询问：

```
我认为这个提交破坏了我们的认证流程：@a1b2c3d

你能解释发生了什么变化以及为什么可能导致问题吗？
```

这为 Cline 提供了完整的提交信息，包括提交消息、作者、日期和完整的差异。然后 Cline 可以分析确切发生了什么变化以及它如何影响代码库的其他部分。

当你正在处理更改并希望在提交之前获得反馈时，`@git-changes` 提及是完美的：

```
这是我当前的更改：@git-changes

我试图为用户配置文件实现一个新功能。我的方法有意义吗？
你有什么潜在问题或改进建议吗？
```

这向 Cline 显示了你所有未提交的更改，包括新文件、修改的文件及其差异。然后 Cline 可以审查你的更改并提供对你实现的反馈。

当与文件提及结合使用时，Git 提及特别强大。当我调查错误时，我经常引用两者：

```
我认为这个提交引入了一个错误：@a1b2c3d

这是当前实现：@/src/components/Auth.jsx

我如何在保留预期功能的同时修复问题？
```

下次处理代码更改或调查问题时，尝试使用 git 提及而不是手动描述或复制更改。你会得到更准确的帮助，因为 Cline 可以看到确切发生了什么变化以及在什么上下文中。

## 底层工作原理

当你在消息中使用 git 提及时，这是背后发生的情况：

### 对于 Git 更改（`@git-changes`）

1. 当你发送消息时，Cline 检测文本中的 `@git-changes` 模式
2. 扩展程序运行 git 命令来获取仓库的当前工作状态
3. 它捕获 `git status` 和 `git diff` 的输出，以查看所有未提交的更改
4. 这些信息以结构化格式附加到你的消息中：

   ```
   <git_working_state>
   On branch main
   Changes not staged for commit:
     modified: src/components/Button.jsx
     modified: src/styles/main.css

   [显示所有更改的完整差异输出]
   </git_working_state>
   ```

### 对于特定提交（`@[commit-hash]`）

1. 当你发送消息时，Cline 检测 `@` 后跟提交哈希的模式
2. 扩展程序运行 `git show` 和相关命令来获取该提交的信息
3. 它检索提交消息、作者、日期和完整的差异
4. 这些信息以结构化格式附加到你的消息中：

   ```
   <git_commit hash="a1b2c3d">
   commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t
   Author: Developer Name <dev@example.com>
   Date: Mon May 20 14:30:45 2025 -0700

   Fix authentication bug in login form

   [显示提交中所有更改的完整差异输出]
   </git_commit>
   ```

每当你使用 git 提及时，这个过程都会自动发生，为 AI 提供对你代码更改的完整可见性，而无需你复制粘贴差异或提交日志。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.