Git合并后如何接受剩余未合并的theirs或所有未合并文件?
处理Git部分合并后剩余未合并文件的方法
一、接受所有剩余未合并文件的theirs版本
解决你之前命令无效的问题
你之前用的git checkout --theirs Project\folder\*.json无效,大概率是Windows环境下通配符(*.json)未被正确解析,或者未合并文件的路径匹配有偏差。更可靠的方式是先筛选出所有未合并文件,再批量操作:
- 先确认剩余未合并的文件列表(可选但建议执行,避免误操作):
git ls-files --unmerged | cut -f2 | sort -u
这个命令会输出所有处于未合并状态的文件路径,帮你确认操作范围。
- 批量接受所有剩余未合并文件的theirs版本:
git ls-files --unmerged | cut -f2 | sort -u | xargs git checkout --theirs
如果只想针对特定类型(比如你提到的json文件),可以添加过滤规则:
git ls-files --unmerged | cut -f2 | sort -u | grep '\.json$' | xargs git checkout --theirs
二、接受剩余未合并文件的ours/theirs版本(按需选择)
如果需要接受剩余未合并文件的ours版本,只需把上面命令中的--theirs替换成--ours即可:
git ls-files --unmerged | cut -f2 | sort -u | xargs git checkout --ours
同样可以添加文件类型过滤,只处理特定后缀的文件。
补充说明
git ls-files --unmerged会列出所有未合并的文件(每个未合并文件会重复出现3次,对应不同暂存区状态),所以用cut -f2 | sort -u提取并去重,得到唯一的文件路径列表。xargs的作用是把前面输出的文件路径逐个传给git checkout命令,实现批量操作。
内容的提问来源于stack exchange,提问作者Shahar Prish
相关产品推荐
相关产品推荐

