由于我的项目文件在git中,我在使用git提交文件之前使用了以下命令来查找更改。
在命令行中
> git diff [filename]
该命令显示更改,包括现有git文件的未使用的空格。但它在新文件中不起作用。
如何找到新文件未使用的空格?
感谢您提前。
答案 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 options和git config
settings,Git的差异突出显示非常容易调整。主要控件是core.whitespace
,设置设置要考虑的“空白错误”,diff.wsErrorHighlight
控制差异的哪些部分根据color.diff.whitespace
着色。所有这一切都假定color.diff
为true
,或auto
并随后启用(另请参阅color.ui
)。