[英]How to list all files in the Git index without newline at end of file
我有一个合并工具,很不幸,该工具会删除文件末尾的换行符。 因此,在使用此工具之后,我需要检查Git索引中的任何文件是否都删除了其尾随的换行符。
git diff --cached
显示这些尾随的换行符删除,但它也显示完整的diff。 我想得到一个更简洁的视图,该视图仅列出Git索引中缺少尾随换行符的已更改文件的文件名。
我试图结合git diff --name-only
和git grep
,但是找不到文件末尾没有换行符的正则表达式来检测文件。 即使使用扩展的正则表达式( -E
), git grep
似乎也无法识别包括\\Z
表达式。
将这个相关问题的答案与一些Bash魔术结合在一起,最终使我有了以下解决方案:
for file in $(git diff --cached --name-only); do test $(tail -c 1 $file) && echo $file; done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.