git add --renormalize .无效果如何修复?.gitattributes配置疑问
Git .gitattributes换行符规则不生效的原因及解决办法
问题原因
不是Git功能的bug,核心问题是规则匹配顺序:
Git读取.gitattributes时从上到下执行,后出现的规则会覆盖先出现的同类型规则。你当前的配置中,* text eol=crlf是全局通配符规则,会匹配所有文件(包括.sh),它出现在*.sh规则之后,直接覆盖了.sh文件的eol=lf设置,导致实际生效的是全局的crlf规则,所以执行git add --renormalize .时没有任何文件需要调整。
正确配置与操作步骤
1. 修正.gitattributes规则顺序
把更具体的规则(.sh)放在全局规则之后,确保它能覆盖全局设置:
* text eol=crlf *.sh text eol=lf
2. 执行正确的命令流程
- 先提交修改后的配置文件:
git add .gitattributes - 重新规范化所有文件的换行符:
git add --renormalize . - 此时可以用
git status查看.sh文件的换行符变更,确认后提交即可。
内容的提问来源于stack exchange,提问作者tribbloid
相关产品推荐
相关产品推荐

