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

如何在Git合并冲突解决后、提交前列出所有参与冲突的文件

实现方法

场景1:尚未执行git add标记冲突已解决

直接运行以下命令即可列出所有存在合并冲突的文件:

git ls-files -u

输出结果的第三列即为冲突文件路径。


场景2:已执行git add标记冲突已解决、但未提交合并结果

可以通过比对两个合并分支的共同祖先,提取同时在两个分支被修改的文件(即本次合并产生过冲突的文件),命令如下:

base=$(git merge-base HEAD MERGE_HEAD)
comm -12 <(git diff --name-only $base HEAD | sort) <(git diff --name-only $base MERGE_HEAD | sort)

不管你解决冲突时选择保留哪个分支的版本,该命令都会输出所有参与过本次合并冲突的文件列表,完全适配你描述的场景。


可选优化:配置Git别名

你可以把上述逻辑配置为自定义Git命令,后续使用更便捷:

git config --global alias.conflict-files '!f() { base=$(git merge-base HEAD MERGE_HEAD); comm -12 <(git diff --name-only $base HEAD | sort) <(git diff --name-only $base MERGE_HEAD | sort); }; f'

配置完成后,只要是在合并未提交的状态下,直接运行git conflict-files就能直接得到冲突文件列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:18:01