Git Diff仅显示差异颜色无代码,SQL文件修改遇.gitattributes问题求助
Git Diff无法展示SQL文件变更内容的解决办法
问题背景
修改SQL文件中@enabled的值从1改为0后,Git Diff仅显示差异标记颜色,看不到具体代码变更;未配置.gitattributes时,还会报错:
file suppressed by a .gitattributes entry or the file's encoding is unsupported
解决步骤
1. 配置项目级.gitattributes文件
在项目根目录创建或编辑.gitattributes文件,添加以下规则:
*.sql text diff
这行规则会告诉Git:将所有.sql文件识别为文本文件,并且允许生成差异对比内容。
添加完成后,提交这个配置文件到仓库:
git add .gitattributes && git commit -m "Set SQL files as text for Git diff"
2. 排查编码兼容性问题(若步骤1无效)
如果配置后仍无法正常展示diff,检查SQL文件的编码格式:
- 确保文件使用Git支持的编码(推荐UTF-8)
- 若文件为其他编码(如GBK),可在
.gitattributes中指定编码:*.sql text diff encoding=GBK
3. 验证修复效果
再次修改SQL文件后,执行git diff命令,即可看到具体的代码变更内容,不会再出现仅显示颜色或报错的情况。
原因说明
Git默认可能将SQL文件识别为二进制文件,或者受全局.gitattributes规则影响,导致无法生成文本diff。通过项目级.gitattributes配置,强制Git将SQL文件按文本处理,就能解决这个问题。
内容的提问来源于stack exchange,提问作者O98
相关产品推荐
相关产品推荐

