如何使用git命令在新文件中查找未使用的空格

时间:2017-03-28 07:25:48

标签: git

由于我的项目文件在git中,我在使用git提交文件之前使用了以下命令来查找更改。

在命令行中

> git diff [filename]

该命令显示更改,包括现有git文件的未使用的空格。但它在新文件中不起作用。

如何找到新文件未使用的空格?

感谢您提前。

2 个答案:

答案 0 :(得分:1)

OP可能会搜索git diff --check替代新文件:

git add [filename]
git diff --staged --check [filename]
git restore --staged [filename] (or git reset HEAD [filename])

答案 1 :(得分:0)

认为您指的是git diff输出中Git的空白高亮显示功能。当然,很难用纯文本显示它,但如果我们用下划线替换实际的空白,我们可能会有一个包含这个的差异:

diff --git a/file.txt b/file.txt
...
-some_text_on_a_line
+some_text_on_a_line_

最后一个空白(或本示例中的下划线)为背景红色而不是前景绿色(启用此类突出显示时,并使用所有默认颜色设置)。

声明是:

  

该命令显示更改,包括现有git文件的未使用的空格。但它在新文件中不起作用。

但这是完全错误的:如果git diff突出显示尾随(或在某些情况下,嵌入)空白区域,它也会在新文件中执行此操作。

最有可能的问题是,你做的是:

$ git status

得到了:

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    new.txt

其中git diff根本不显示文件,然后执行:

$ git add new.txt

并运行了git diff,它再次没有显示该文件,因为现在git diff正在将new.txt索引版本与< em> work-tree 版本的new.txt,这两个匹配。

要查看所需的差异,您应该比较new.txt已提交的版本(不存在,因此Git使用/dev/null作为占位符空文件)索引版本:

$ git diff --cached
diff --git a/new.txt b/new.txt
new file mode 100644
index 0000000..2459b89
--- /dev/null
+++ b/new.txt
@@ -0,0 +1,3 @@
+new file
+this line ends with a blank_
+this one doesn't

(我用下划线替换了突出显示的空白)。

请注意,通过command line optionsgit config settings,Git的差异突出显示非常容易调整。主要控件是core.whitespace,设置设置要考虑的“空白错误”,diff.wsErrorHighlight控制差异的哪些部分根据color.diff.whitespace着色。所有这一切都假定color.difftrue,或auto并随后启用(另请参阅color.ui)。