VSCode编辑器中Git合并冲突时文件不显示差异对比内容求助
Git合并冲突时VSCode不显示incoming changes问题说明
复现步骤
- 在master分支新建test.txt文件
- 创建并切换到名为
test的分支,在test.txt中添加文本「test branch」后提交 - 切回master分支,在test.txt中添加文本「master branch」后提交
- 切回test分支执行
git merge master命令,终端正常提示存在合并冲突
异常现象
VSCode打开冲突的test.txt文件时,仅能看到文件存在冲突的系统标注,没有显示incoming changes、current changes等标准差异对比内容,无法直接通过VSCode内置功能解决冲突。该问题仅在当前特定项目中出现,其他项目合并操作均正常。
可能原因及解决方案
原因1:项目.gitattributes配置了自定义合并规则
当前项目根目录下的.gitattributes文件如果对冲突文件类型配置了特殊合并规则,例如*.txt -merge、*.txt merge=binary,会导致Git合并时不插入<<<<<<< HEAD、=======、>>>>>>> master这类标准冲突标记,VSCode无法识别差异内容自然不会展示合并选项。
解决方案:删除.gitattributes中对应文件的特殊合并规则,重新执行合并命令即可。
原因2:Git合并冲突样式配置非默认值
如果Git的全局或项目本地配置修改了merge.conflictStyle参数,部分老版本VSCode无法识别非默认的冲突格式,会导致差异区块加载失败。
解决方案:执行命令git config --local merge.conflictStyle merge将当前项目的冲突样式重置为默认值,重新触发合并即可。
原因3:VSCode未正确识别当前项目为Git仓库
如果打开VSCode时选择的路径不是项目根目录(即不包含.git文件夹的上层路径),VSCode的Git拓展无法读取仓库信息,也就不会加载合并冲突相关的对比功能。
解决方案:重新在VSCode中打开项目根目录,确认左侧「源代码管理」面板可以正常展示冲突文件列表即可。
内容的提问来源于stack exchange,提问作者Coding-pupupu
相关产品推荐
相关产品推荐

