有没有一种简单的方法可以自动对任何只有空格更改的文件进行git checkout?我正在处理从Eclipse运行的Windows和一些代码生成,所以我得到了新行更改和空白更改,这些更改阻碍了我的工作流程中的噪音,并且难以跟踪实际更改。
即使只是一个很好的方式 报告 哪些文件有真正的变化,哪些文件不是一个开始,而不是必须为每个文件做一个diff -w
有没有一种简单的方法可以自动对任何只有空格更改的文件进行git checkout?我正在处理从Eclipse运行的Windows和一些代码生成,所以我得到了新行更改和空白更改,这些更改阻碍了我的工作流程中的噪音,并且难以跟踪实际更改。
即使只是一个很好的方式 报告 哪些文件有真正的变化,哪些文件不是一个开始,而不是必须为每个文件做一个diff -w
要暂存不仅仅是空格更改的更改,您可以执行以下操作:
git diff -U0 -w --no-color | git apply --cached --ignore-whitespace --unidiff-zero -
之后,要删除所有未分级的更改(仅在空格中有所不同的更改),您可以执行以下操作:
git checkout .
通过执行操作来取消您的更改 git reset --mixed
并从这个答案的顶部继续。注意 mixed
是默认模式,可以省略。
这很可能是一个行结束问题; Windows使用CRLF(回车+换行,或 \r\n
)行结尾,而大多数其他系统使用LF(换行,或 \n
)。幸运的是,Git可以将文件规范化 总是 在repo中存储为LF,但在Windows上将作为CRLF签出。您可以通过设置来完成此操作 core.autocrlf
至 true
在Windows上:
$ git config --global core.autocrlf true
和设置 core.autocrlf
至 input
在Mac和Linux上:
$ git config --global core.autocrlf input
更多信息可用 这里 (向下滚动到标题为的部分 core.autocrlf)。