我不小心在最初的提交中添加了一些空格。它在
git diff --color
中显示为红色。如何消除现有的空白以及如何避免再次发生这种情况?
要修剪当前目录中所有文件的尾随空格,请使用:
sed -i 's/[[:space:]]*$//' *
要警告未来的空格错误(尾随空格和制表符之前的空格),并修复补丁中的空格错误,请将以下代码添加到您的
gitconfig
文件中:
[core]
whitespace = trailing-space,space-before-tab
[apply]
whitespace = fix
core.whitespace
指示 git 标记某些空白问题:
trailing-space
警告行尾或文件末尾有空格space-before-tab
当用于缩进的制表符之前有空格时发出警告apply.whitespace
用于粘贴补丁时。它检查空白错误(上面列出的错误,在core.whitespace
中),并在尝试修复它们(即删除它们)后应用补丁。
这些选项位于
~/.gitconfig
中——即用户主目录根目录下的 .gitconfig
文件(通常在 Linux 上为 /home/user/.gitconfig
,在 Mac OS X 上为 /Users/user/.gitconfig
,我不知道在哪里) Windows,但我想在 C:\Documents and Settings\user
)的某个地方。
请参阅此线程 git 在提交之前删除新文件中的尾随空格,使用
git rebase
从已提交的文件中删除空格。
要从所有子目录中递归地修剪所有文件中的空格,可以使用此功能。
find ./* -type f -exec sed -i 's/[[:space:]]*$//' {} \;
git rebase --whitespace=fix --root
这已经在https://stackoverflow.com/a/26299760/2716218中链接到,但值得放置,因为它是自己干净的答案。