aic 如何解决一次冲突
resolve 是一套流程,不是魔法棒。aic 遍历每个冲突文件、提出修复,并在每一步停下来等你确认。
- 检测
aic resolve读取仓库状态。如果你正处于合并中且有未合并的文件,它会列出来。 - 逐文件解决 对每个文件,aic 把冲突内容发给你的模型,取回一份不含冲突标记的版本。如果仍有标记漏网,它会重试一次。
- 审查 diff aic 把所有提议的解决汇总成一个 diff——标记被移除、两边被调和——让你看清究竟会改什么。
- 逐文件确认 每个文件都有自己的
apply?提示。回答 yes,aic 就写入解决方案并暂存;回答 no,那个文件原封不动。 - 完成 当没有未合并的内容时,aic 替你执行合并的
--continue。流程中被卡住的点会带着清晰的交接说明上报,而不是一个莫名其妙的计数。
两种入口
你不必记命令。有一个显式的动词,还有一个在你忘记时接住你的守卫。
-
aic resolve显式的动词。只要你的仓库正处于合并中,随时运行它,aic 会从上面的检测步骤接手。 - 提交守卫 在一个有冲突的仓库里运行普通的
aic,它会察觉、提议交接给 resolve,而更深一层的守卫会拦下任何仍带有冲突标记的提交。友好的前门,加上一道安全网。
没有你的点头,什么都不落地
核心就一句话:aic 提议,你拍板。它绝不写入一个你没看过、没批准的解决方案。
aic 留给你的部分
先把丑话说前面,让你清楚工具到哪儿结束、你从哪儿接手。这些是 v1 的限制。
- 仅限合并冲突 aic 处理的是有冲突的合并状态。进行中的 rebase 或
am在 v1 中会被检测到并拒绝——先完成或中止它,再来 resolve。 - 有些冲突无法自动解决 二进制文件、超大文件,以及删除/修改类冲突会被跳过并给出原因——aic 会指给你看,让你手动解决。
- 完成步骤是全有或全无 无论怎样
--continue都会卡在任何未合并的路径上,所以哪怕只剩一个阻塞点,完成步骤也走不下去。aic 的交接说明会确切告诉你还剩什么。
简而言之
aic resolve 读取你的冲突文件,提出你确实能审查的解决方案,只写入你批准的部分——然后完成合并。它和 aic 用于提交的那套「读 diff、起草修复、交付」循环是同一个,只是指向了 git 里最难看的地方。