git 确保在每个文件末尾换行
git ensure newline at end of each file
git
不喜欢不以换行符结尾的文件(例如参见 [=12=])。假设我想清理我的存储库并确保每个文件都以换行符正确结束(不添加无用的换行符),是否有某种工具或命令可以帮助我做到这一点?
for f in $(git grep --cached -Il ''); do tail -c1 $f | read -r _ || echo >> $f; done
说明
git grep --cached -Il ''
列出 git 索引中的所有 text 文件 (link)
tail -c1
读取最后一个字符
如果 read
内置函数在找到 \n
之前检测到 EOF
,则它退出非零值
echo >> $f
只在读取命令失败时执行
ps:灵感来自 https://backreference.org/2010/05/23/sanitizing-files-with-no-trailing-newline/
git
不喜欢不以换行符结尾的文件(例如参见 [=12=])。假设我想清理我的存储库并确保每个文件都以换行符正确结束(不添加无用的换行符),是否有某种工具或命令可以帮助我做到这一点?
for f in $(git grep --cached -Il ''); do tail -c1 $f | read -r _ || echo >> $f; done
说明
git grep --cached -Il ''
列出 git 索引中的所有 text 文件 (link)tail -c1
读取最后一个字符
如果 read
内置函数在找到\n
之前检测到 echo >> $f
只在读取命令失败时执行
EOF
,则它退出非零值
ps:灵感来自 https://backreference.org/2010/05/23/sanitizing-files-with-no-trailing-newline/