如果仅更改了空格和换行符,如何忽略'git status'中的文件

din*_*igo 10 git

我经常使用一些选项卡而不是空格来推送代码,反之亦然,或者插入换行符以提高代码可读性.我如何告诉git不要寻找这些变化?

chr*_*lly 12

我找不到一个原生的git解决方案来识别真正改变了什么,git status但是下面的单行程在linux下运行良好:

for m in $(git status | grep modified| awk '{print $2}');do test -z "$(git diff -w $m)" || echo $m;done
Run Code Online (Sandbox Code Playgroud)

结果将是一个修改文件列表,不包括只有空格更改的文件.

当您只想查看具有实际编辑的文件时,这在编写提交消息之前特别有用,这在Windows和Linux系统之间来回移动时通常是个问题.如果您可以控制两个系统,那么在git中配置空白设置可能是一个更清洁的解决方案.

  • 我需要将{print $ 2}更改为{print $ 3}.但是一个很好的解决方案.也许是一个不同的git版本? (3认同)

Gur*_*ngh 8

这应该做的伎俩:

git diff -w | git apply --cached --ignore-whitespace
Run Code Online (Sandbox Code Playgroud)

修补程序将在不添加空格的情况下应用添加.

  • 我不确定这回答了这个问题.我只是想忽略"git status"中的文件.此时我不关心补丁. (3认同)
  • 当我从 Windows 上的 Git Bash 运行它时,我收到错误“错误:无法识别的输入”。 (2认同)