You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git合并二进制文件时git checkout --ours返回0路径更新如何解决

问题原因

执行git checkout --ours path/to/file.txt返回updated 0 paths from the index,本质是Git没有匹配到符合操作要求的目标文件,常见诱因有三类:

  • 路径参数错误:手写的文件路径存在拼写错误、大小写不匹配(Git默认对路径大小写敏感),或是执行命令时终端所在的工作目录不对,导致Git定位不到指定文件。
  • 目标文件不在未合并状态:--ours/--theirs参数仅对处于未合并(unmerged)冲突状态的文件生效。如果该二进制文件没有触发合并冲突,或是你之前已经执行过git add将其标记为冲突已解决,命令就不会修改任何文件。
  • 目标文件未被Git跟踪:如果是合并过程中产生的新二进制文件,还没被纳入Git索引,也会返回这个提示。
解决步骤
  • 第一步先执行git status查看仓库当前状态,在输出的Unmerged paths(未合并路径)分类下,找到目标二进制文件的完整准确路径,直接复制这个路径拼接后续命令,避免手写路径出错。

如果目标文件不在Unmerged paths列表里,说明它要么没有产生冲突、要么已经被标记为解决,不需要执行这个checkout命令。

  • 如果文件已经被误标记为已解决(出现在Changes to be committed列表中),先执行git restore --staged 复制到的准确文件路径,把文件退回到未合并的冲突状态,再执行git checkout --ours 复制到的准确文件路径,就能正常拉取当前分支的文件版本。
  • 注意不同操作场景下的参数指向差异:如果你是在rebase、cherry-pick过程中处理冲突,--ours和--theirs的指向和普通merge是反过来的:普通merge时--ours对应当前所在分支的版本,rebase时--ours对应变基目标分支的版本,不要选反。
  • 选完需要的文件版本后,执行git add 对应文件路径标记冲突已解决,再继续推进后续的合并/变基流程即可。

内容的提问来源于stack exchange,提问作者Jonathan Williams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 05:27:21