服务对象与地域限制
PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。
代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。
本文要点
- Git 2.56.0 的官方发行日期是 2026 年 9 月 28 日;使用前检查当前终端运行的 Git 版本。
- 先看未合并路径,再按需要指定文件;已经存在的暂存内容仍需另行审阅。
- 残留冲突标记报错后,先处理报告中的文件,再重复限定范围的暂存步骤。
- 最后核对暂存差异、剩余未合并路径与无关改动,再按原来的合并或变基流程继续。
什么时候适合用 --resolved
假设你正在合并一个功能分支:src/invoice.php 出现冲突,notes/local.txt 又有一段暂时不想提交的个人备注。你需要把修好的业务文件交给 Git,同时保留备注的原状态。这是本文的示意场景,文件名仅用于解释操作,不是实测记录。
GitHub 在 2026 年 9 月 28 日的 Git 2.56 发行解读中介绍了这项能力。本文于北京时间 10 月 5 日核对官方手册,关注冲突解决后的暂存步骤;不会因为后来再次出现的社交帖,就把版本发行日期改成今天。
第一步:确认版本,留一份操作前状态
在准备操作的仓库终端运行下面两条命令。先读完结果再暂存,尤其要记下哪些文件原本就已经进入暂存区。
git --version
git status --short
不同终端或编辑器可能使用不同的 Git。若出现 unknown option 或不认识 resolved,先核对实际运行的版本与该版本的 git add 帮助。2.56 引入该选项,但各系统安装渠道更新节奏不同,不能凭装过一个新安装器就认定所有入口都已升级。
这里不会清空已有暂存内容。若此前已经暂存其他文件,即使接下来只处理冲突路径,最后提交范围仍可能包含那些文件;把初始状态记下来,才能判断本次操作新增了什么。
第二步:修好文件,再限定暂存范围
先列出当前未合并路径,逐个打开文件,结合双方修改确定最终内容。不要只删掉分隔符而留下两段互相矛盾的代码。
git diff --name-only --diff-filter=U
确认示例中的 src/invoice.php 已处理好之后,可以只选择它;实际使用时把路径换成你刚检查过的文件。路径中的空格应保留引号。
git add --resolved -- "src/invoice.php"
如果准备检查全部仍未合并的路径,可以不提供文件范围,运行 git add --resolved。这个选项按照索引里的未合并状态筛选;它不会把普通未冲突文件顺带加入。已经暂存为解决结果的文件,后来再改动也需要另行核对和处理,不能指望该选项再次选中它。
仍有冲突标记,为什么一个文件也没暂存
官方规定,所选普通文件在检查时只要还有残留冲突标记,就拒绝暂存这一组选中路径。因此同时选择几个文件时,一个文件未修完,其他已修好的文件也可能仍留在未合并状态。这是先检查再暂存的行为。
按错误报告打开相关文件,确认遗漏的冲突块,保存后重新执行同一范围的命令。若本来就只想处理其中一个文件,先核对它确实是预期结果,再用明确路径缩小范围;不要因为报错就改用全仓库暂存来继续。
文件内容本身包含类似冲突标记的文本时,需要人工判断其用途。命令检查不能替你决定应保留哪段内容,业务结果也不能仅凭命令成功就验收。
第三步:分别检查准备提交的内容和剩余工作
暂存后再次运行 git status --short,再分别查看暂存区与尚未暂存的差异。对非未合并路径,短状态两列分别对应索引和工作区;剩余冲突路径须按未合并状态解释。不要只看文件名前有一个 M,就认为全部改动都已处理。
git diff --cached
git diff
git diff --name-only --diff-filter=U
对照第一步记录检查:业务文件的最终差异是否符合预期,备注是否仍保留在原位置,还有哪些冲突没处理。未合并列表为空只表示这一层状态已解决;仍需运行项目要求的测试或检查,之后再按原来的合并、变基或挑拣提交流程继续。
使用 AI 编程助手整理冲突时,同样要审阅最终差异和测试结果。把步骤交给工具执行,不会减少对文件范围、已有暂存和逻辑正确性的检查。
二进制、删除和普通暂存的边界
--resolved 不能与 -u 或 -A 合用,也不是普通 git add 默认开启的功能。若命令混用了这些选项,先改回单一、明确的暂存模式,再检查结果。
官方手册允许把二进制文件和删除作为解决结果暂存,但它们没有可供文字标记检查的内容。图片、压缩包或删除选择,要用预览、校验或项目检查确认你保留的是哪一版,不能把没有标记当成自动选对。
这套步骤的验收目标是:选择范围符合预期、最终内容已审阅、剩余工作有记录。确认每一项后再继续原来的工作流,避免把暂存动作和提交验收合成一步。
资料来源
常见问题
git add --resolved 会把其他已修改文件一起暂存吗?
它只选择索引中仍未合并且符合路径范围的文件。不过原先已有的暂存内容不会因此清空,提交前仍要检查 git diff --cached。
命令成功,就能确认冲突解决正确了吗?
不能。暂存状态与业务正确性需要分别验收,尤其要检查最终差异、二进制文件或删除选择,并运行项目要求的检查。
为什么升级后还是提示不认识 resolved?
先在出错的终端检查 git --version 和对应版本的 git add 帮助,核对编辑器或其他终端是否调用另一份 Git;不要把不同安装入口的版本当成相同。
只修好一个文件,能先暂存它吗?
可以用明确路径选择范围,例如 git add --resolved -- "src/invoice.php"。文件名是示意,执行前应换成已经审阅的实际路径。