我不小心在my initial commit中添加了一些空格 - 它在git diff --color
中显示为红色。什么是摆脱现有空白的最佳方法,我怎样才能避免这种情况再次发生?
我不一定要寻找内置的 git 命令。任何在Ubuntu上免费提供的外部程序也是受欢迎的。
答案 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:]] * $ //'{} \;