【发布时间】:2020-01-06 07:39:25
【问题描述】:
git 不喜欢不以换行符结尾的文件(例如,参见this question)。假设我想清理我的存储库并确保每个文件都以换行符正确结束(不添加无用的换行符),是否有某种工具或命令可以帮助我做到这一点?
【问题讨论】:
git 不喜欢不以换行符结尾的文件(例如,参见this question)。假设我想清理我的存储库并确保每个文件都以换行符正确结束(不添加无用的换行符),是否有某种工具或命令可以帮助我做到这一点?
【问题讨论】:
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/
【讨论】: