git - 修剪空格

时间:2010-07-30 15:14:04

标签: git whitespace code-cleanup removing-whitespace

我不小心在my initial commit中添加了一些空格 - 它在git diff --color中显示为红色。什么是摆脱现有空白的最佳方法,我怎样才能避免这种情况再次发生?

我不一定要寻找内置的 git 命令。任何在Ubuntu上免费提供的外部程序也是受欢迎的。

4 个答案:

答案 0 :(得分:26)

要修剪当前目录中所有文件的尾部空格,请使用:

sed -i 's/[[:space:]]*$//' *

要警告未来的空白错误(尾随空格空格> 之前的空格),并修复补丁中的空白错误,请将以下代码添加到{{1文件:

gitconfig

答案 1 :(得分:12)

core.whitespace指示git标记某些空白问题:

  • trailing-space警告某行末尾或文件末尾的空白
  • space-before-tab在用于缩进的标签之前有空格时发出警告
应用补丁时使用

apply.whitespace。它检查空白错误(上面列出的错误,在core.whitespace中),并在尝试修复它们之后应用补丁(即删除它们)。

这些选项位于~/.gitconfig - 即用户主目录根目录下的.gitconfig文件(Linux上通常为/home/user/.gitconfig,Mac OS上为/Users/user/.gitconfig X,我不知道在Windows上的哪个位置,但我想在C:\Documents and Settings\user)的某处。

答案 2 :(得分:2)

请参阅此帖子git remove trailing whitespace in new files before commit,使用git rebase从您已提交的文件中删除空格。

答案 3 :(得分:0)

要从所有子目录中递归修剪所有文件中的空格,可以使用它。

find ./* -type f -exec sed -i's / [[:space:]] * $ //'{} \;