Git 集成

Aider 在与 git 仓库中的代码协作时表现最佳。 Aider 深度集成了 git,这使得以下操作变得简单:

  • 使用 /undo 命令立即撤销任何你不喜欢的 AI 修改
  • 回溯 git 历史记录查看 aider 对代码所做的更改
  • 在 git 分支上管理一系列 aider 的修改

Aider 通过以下方式使用 git:

  • 当你在没有 git 仓库的目录中启动 aider 时,它会询问是否创建 git 仓库
  • 每当 aider 编辑文件时,它会以描述性的提交信息提交这些更改,这使得撤销或审查 aider 的更改变得容易
  • 在编辑已有未提交更改(脏文件)的文件前,aider 会特别小心。aider 会首先以描述性的提交信息提交任何预先存在的更改 这样可以将你的编辑与 aider 的编辑分开,并确保如果 aider 做出了不合适的更改,你永远不会丢失工作内容

聊天中的命令

Aider 还允许你使用 聊天命令 来执行 git 操作:

  • /diff 将显示自你上次发送消息以来的所有文件更改
  • /undo 将撤销并丢弃最后一次更改
  • /commit 以合理的提交信息提交所有脏更改
  • /git 允许你运行原始 git 命令来更复杂地管理你的 git 历史记录

你也可以使用你喜欢的 git 工具在 aider 之外管理你的 git 历史记录。

禁用 Git 集成

虽然不推荐,但您可以通过以下几种方式禁用 aider 的 Git 功能:

  • --no-auto-commits 会阻止 aider 自动提交每次更改
  • --no-dirty-commits 会阻止 aider 在应用编辑前提交未暂存的文件
  • --no-git 将完全禁用 aider 对 Git 的使用。您应确保对正在处理的文件进行合理备份
  • --git-commit-verify 会在执行 Git 提交时运行 pre-commit 钩子。默认情况下,aider 会使用 --no-verify 标志跳过 pre-commit 钩子(--git-commit-verify=False

提交信息

aider 会向 --weak-model 发送差异内容和聊天历史记录的副本,并要求其生成提交信息。默认情况下,aider 创建的提交信息遵循 Conventional Commits 规范。

您可以通过 --commit-prompt 选项自定义 提交提示。该选项可以直接在命令行中使用,也可以通过配置文件或环境变量进行配置

提交归属标记

Aider 会对它创作或提交的 commit 进行标记:

  • 如果 aider 创作了 commit 中的变更内容,该 commit 的 git author 和 git committer 名称元数据中会附加 “(aider)” 标记
  • 如果 aider 只是提交了变更(在脏文件中发现的变更),该 commit 的 git committer 名称元数据中会附加 “(aider)” 标记

你可以使用 --no-attribute-author--no-attribute-committer 选项来禁用对 git author 和 committer 名称字段的修改。

此外,你还可以使用以下选项为提交消息添加前缀:

  • --attribute-commit-message-author:如果 aider 创作了变更,则在提交消息前添加 ‘aider: ‘ 前缀
  • --attribute-commit-message-committer:无论 aider 是否创作了变更,都在所有提交消息前添加 ‘aider: ‘ 前缀

最后,你可以使用 --attribute-co-authored-by 选项让 aider 在提交字符串末尾添加 Co-authored-by 尾注。除非你明确启用了相关设置,否则这将禁用在 git author 和 git committer 名称后附加 (aider) 标记的功能。


目录