git
不喜欢不以换行符结尾的文件(例如,请参阅 this question)。假设我想清理我的存储库并确保每个文件以换行符正确结束(不添加无用的换行符),是否有某种工具或命令可以帮助我做到这一点?
最佳答案
for f in $(git grep --cached -Il ''); do tail -c1 $f | read -r _ || echo >> $f; done
说明
git grep --cached -Il ''
列出 git 索引 ( link ) 中的所有文本文件tail -c1
读取最后一个字符read
内置函数如果在找到\n
之前检测到EOF
,则以非零值退出echo >> $f
仅在读取命令失败时执行
ps:灵感来自https://backreference.org/2010/05/23/sanitizing-files-with-no-trailing-newline/
关于git 确保每个文件末尾有换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57770972/