我有一个 merge 工具,不幸的是它删除了文件末尾的换行符。因此,在使用此工具后,我需要检查 Git 索引中的任何文件是否删除了尾随换行符。
git diff --cached
显示这些尾随换行删除,但它也打印完整的差异。我想要一个更简洁的 View ,它只列出 Git 索引中缺少尾随换行符的已更改文件的文件名。
我尝试结合使用 git diff --name-only
和 git grep
,但我找不到用于检测末尾没有换行符的文件的正则表达式的文件。包含 \Z
的表达式似乎无法被 git grep
识别,即使使用扩展的正则表达式 (-E
)。
最佳答案
结合 this related question 的答案借助一些 Bash 魔法,我最终找到了这个解决方案:
for file in $(git diff --cached --name-only); do test $(tail -c 1 $file) && echo $file; done
关于git - 如何在文件末尾没有换行符的情况下列出 Git 索引中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27624800/