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

能否通过Ours/Theirs模式解决单个Git文件的冲突?

解决单个Git冲突文件的Ours/Theirs选择方案

我太懂这种不想批量处理所有冲突,只想搞定某一个文件的需求了!你之前遇到的git checkout --theirs执行后文件仍显示冲突的问题,核心是没告诉Git冲突已经处理完成,下面给你一步步讲正确的命令行操作:

核心命令流程(适用于所有Git版本)

不管你想选本地分支(ours)还是对方分支(theirs)的版本,都需要两步:

  1. 替换文件内容为目标版本
  2. 标记该文件冲突已解决

选择对方分支(Theirs)的版本

# 把文件内容替换为合并时对方分支的版本
git checkout --theirs PATH/TO/CONFLICTED/FILE
# 告诉Git这个文件的冲突已经处理好了
git add PATH/TO/CONFLICTED/FILE

选择本地分支(Ours)的版本

# 把文件内容替换为当前本地分支的版本
git checkout --ours PATH/TO/CONFLICTED/FILE
# 标记冲突已解决
git add PATH/TO/CONFLICTED/FILE

执行完这两步后再跑git status,就能看到这个文件已经从“冲突”状态变成“已暂存”状态了。

Git 2.23+ 更直观的替代命令:git restore

如果你用的是Git 2.23及以上版本,可以用git restore命令来更清晰地完成操作:

  • 选Their版本:
git restore --theirs PATH/TO/CONFLICTED/FILE
git add PATH/TO/CONFLICTED/FILE
  • 选Our版本:
git restore --ours PATH/TO/CONFLICTED/FILE
git add PATH/TO/CONFLICTED/FILE

或者你也可以用--source参数明确指定来源:

# 选当前分支(Our)的版本
git restore --source=HEAD -- PATH/TO/CONFLICTED/FILE
# 选合并的目标分支(Their)的版本
git restore --source=MERGE_HEAD -- PATH/TO/CONFLICTED/FILE
git add PATH/TO/CONFLICTED/FILE

关于git mergetool没反应的小提示

如果还是想用可视化工具处理单个文件,先确保你配置了可用的合并工具,比如配置vimdiff:

git config --global merge.tool vimdiff

之后针对单个文件运行:

git mergetool PATH/TO/CONFLICTED/FILE

这样就能只处理这一个冲突文件,选完版本后工具会自动帮你标记冲突已解决(部分工具需要手动保存退出)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:13:17