git - 修剪空白

问题描述 投票:0回答:5

我不小心在我的初始提交中添加了一些空格 - 它在

git diff --color
中显示为红色。消除现有空白的最佳方法是什么?如何避免这种情况再次发生?

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

git whitespace code-cleanup removing-whitespace
5个回答
31
投票

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

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

要警告未来的空格错误(尾随空格制表符之前的空格),并修复补丁中的空格错误,请将以下代码添加到您的

gitconfig
文件中:

[core]
    whitespace = trailing-space,space-before-tab
[apply]
    whitespace = fix

15
投票

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
)的某个地方。


2
投票

请参阅此线程 git 在提交之前删除新文件中的尾随空格,使用

git rebase
从已提交的文件中删除空格。


2
投票

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

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

0
投票
git rebase --whitespace=fix --root

这已经在https://stackoverflow.com/a/26299760/2716218中链接到,但值得放置,因为它是自己干净的答案。

© www.soinside.com 2019 - 2024. All rights reserved.