【问题标题】:git - trim whitespacegit - 修剪空格
【发布时间】:2011-03-23 07:36:40
【问题描述】:

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

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

【问题讨论】:

标签: git whitespace code-cleanup removing-whitespace


【解决方案1】:

并且可以使用此方法从所有子目录中递归地修剪所有文件中的空白。

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 这对于防止空格提交很有用,但 OP 询问是否要删除他们已经提交的空格
    • @stevejpurves:第一行解释了如何使用 sed 删除尾随空格。据我所知,没有 git 命令可以做同样的事情。
    【解决方案3】:

    请参阅此线程 git remove trailing whitespace in new files before commit,了解如何使用 git rebase 从您已提交的文件中去除空格。

    【讨论】:

    • TL;DR:要修复最后一次提交的空白,请使用git rebase --whitespace=fix HEAD~
    【解决方案4】:

    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 的某个位置。

    【讨论】:

    • 这解释了空白设置(为此 +1),但没有回答“如何摆脱现有空白?”的问题。为了清楚起见,我已经更新了原始帖子。
    猜你喜欢
    • 1970-01-01
    • 2020-04-25
    • 2012-05-23
    • 2017-10-23
    • 2012-03-14
    • 2020-09-09
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多