修改.gitattributes无法将.sh文件换行符设为LF?求解决方案
解决Git仓库中.sh文件强制LF换行符的问题
关键解决步骤
修正.gitattributes配置
在仓库根目录创建或编辑.gitattributes文件,写入以下内容:*.sh text eol=lf加上
text属性明确标记这类文件为文本文件,避免Git将其识别为二进制文件而跳过换行符处理。清除Git缓存并重新提交
已被Git跟踪的文件不会自动应用新的换行规则,需要执行以下命令重置缓存并重新提交:git rm --cached -r . git add . git commit -m "Enforce LF line endings for all .sh files"锁定仓库级换行符配置
避免全局配置干扰,直接在当前仓库执行:git config core.autocrlf false验证生效状态
提交完成后,可通过以下命令查看.sh文件的换行符设置:git ls-files --eol输出中
.sh文件的eol列应显示为lf。
避坑提示
- 不要仅依赖全局
core.autocrlf设置,仓库级的.gitattributes优先级更高,能统一团队所有成员的配置。 - 必须执行缓存清除操作,否则Git不会重新处理已跟踪文件的换行符规则。
- 如果之前配置过
*.sh binary这类规则,要先从.gitattributes中移除。
内容的提问来源于stack exchange,提问作者Mary
相关产品推荐
相关产品推荐

