从git阶段删除"文件末尾没有换行符"的更改

Ben*_*ris 5 git newline sed

我在一个大型代码库上执行了一个sed搜索/替换,并且对于每个传递过的文件,如果之前没有它,它会在最后添加一个换行符.虽然以\n结束最后一行是一个很好的惯例,但这是一个巨大的差异,与我试图完成的事情无关.这个变化影响了数百个文件,我不想手动检查这些文件git checkout.

有没有办法有选择地添加或删除暂存的更改,以便只忽略"文件末尾没有换行符"的文件?

Ben*_*ris 6

从链接的相关问题中,我发现git diff --ignore-all-space忽略只有空格更改的文件.git diff --ignore-all-space --name-only不像我预期的那样工作,但是这样做:

git diff --ignore-all-space | grep "+++"

这给了我一个除了空白之外有其他变化的文件列表,这个文件足够小,我可以手动将它们全部添加到舞台上并提交.

感谢大家的评论,他们非常乐于助人.