我在大型代码库上执行了 sed 搜索/替换,对于 sed 传递的每个文件,如果之前没有,它会在末尾添加一个换行符。虽然以\n 结束最后一行是一个很好的约定,但这是一个巨大的差异,与我试图完成的目标无关。该更改影响了数百个文件,我不想手动检查这些文件并手动 git checkout
。
有没有什么方法可以选择性地添加或删除阶段性更改,以便忽略只有“文件末尾没有换行符”的文件?
最佳答案
从链接的相关问题中,我发现 git diff --ignore-all-space
会忽略只有空格更改的文件。 git diff --ignore-all-space --name-only
没有像我预期的那样工作,但是这样做:
git diff --ignore-all-space | grep "+++"
这给了我一个文件列表,其中包含除空白以外的更改,它足够小,我可以手动将它们全部添加到舞台并提交。
感谢大家的评论,他们非常有帮助。
关于git - 从 git 阶段删除 "no newline at end of file"更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25317902/