git - 如何在文件末尾没有换行符的情况下列出 Git 索引中的所有文件

我有一个 merge 工具,不幸的是它删除了文件末尾的换行符。因此,在使用此工具后,我需要检查 Git 索引中的任何文件是否删除了尾随换行符。

git diff --cached 显示这些尾随换行删除,但它也打印完整的差异。我想要一个更简洁的 View ,它只列出 Git 索引中缺少尾随换行符的已更改文件的文件名。

我尝试结合使用 git diff --name-onlygit 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

https://stackoverflow.com/questions/27624800/

相关文章:

xaml - String.format xaml 电话号码

python - 如何移动 Canvas 多边形?

c# - 自动实现的属性 setter 上的条件断点

javascript - Code.gs 中的 Google Apps 脚本返回对象

visual-studio-2013 - 即使通过 NuGet 安装,SpecFlow 也找不到包

javascript - 单击播放音频时出现不必要的延迟

string - 使用 nasm 从 dx 打印十六进制

django - 如何从 Django 中的信号获取返回响应

android - 有没有办法知道设备中蓝牙芯片的详细信息?

php - 在 app.yaml Google App Engine 中将参数传递给 php