注意:我想我已经回答了这个问题,向下滚动。
我使用的是 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
好吧,我想我刚刚度过了漫长的一天。有人可以评论说我要疯了,这看起来不错并且我的别名按预期工作吗?我想现在就是了,只是问问。
这确实是一个令人困惑的差异,但它实际上只是一个空格的变化。原像(旧代码)包含与图像(新代码)相同的行,但没有尾随换行符。
此语法实际上是必需的,因为您必须在差异中进行添加和删除,以便您可以将
\ No newline at end of file
标记放置在正确的行后面。例如,如果该标记位于 +
行之后,则意味着换行符被删除,而不是添加。