git diff -b --color 忽略具有超过空间更改的整个文件

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

注意:我想我已经回答了这个问题,向下滚动。

我使用的是 Git 版本 2.25.1

我试图找出为什么,我的别名

alias gd="git diff -b --color"
当我运行
gd
时它丢失了整个文件。

示例:

运行

gd
完全丢失了文件
ansible/client_plays/ssl.yml
,然后当我运行
git diff
时它会显示它

--- a/ansible/client_plays/ssl.yml
+++ b/ansible/client_plays/ssl.yml
@@ -79,4 +79,4 @@ all:
         10.0.1.211:
     nomad-jobs:
-        10.0.1.211:
\ No newline at end of file
+        10.0.1.211:

是否有某种原因

-b
会忽略这些更改? (这是完全省略了IP地址,这是主要的,而不仅仅是空格)。是否有某种原因
--color
可能会忽略这些更改?

编辑

天哪,我想我也误读了这一点。我看到它说文件末尾没有新行。我意识到这就是我的线索。但我以为是说IP被省略了,但看起来像是说它被放回去了。

我以后可以信任这个别名吗?我只是有一分钟失去了对它的信任,但看起来我实际上很好。

我将收集我拥有的另一个示例文件,让我们也检查一下......

+++ b/ansible/playbook.yml
@@ -119,4 +119,4 @@
 - hosts: kibana-dashboard
   tasks:
 - import_role:
-      name: kibana-dashboard
\ No newline at end of file
+      name: kibana-dashboard

好吧,我想我刚刚度过了漫长的一天。有人可以评论说我要疯了,这看起来不错并且我的别名按预期工作吗?我想现在就是了,只是问问。

git command-line-interface
1个回答
0
投票

这确实是一个令人困惑的差异,但它实际上只是一个空格的变化。原像(旧代码)包含与图像(新代码)相同的行,但没有尾随换行符。

此语法实际上是必需的,因为您必须在差异中进行添加和删除,以便您可以将

\ No newline at end of file
标记放置在正确的行后面。例如,如果该标记位于
+
行之后,则意味着换行符被删除,而不是添加。

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