Avoid “No newline at end of file” in git diff
我很确定我明白文件末尾没有换行意味着什么。我想提供一个我很久以前创建并重新启动的分支的pull请求(提交可能是从
1 2 3 | -} \ No newline at end of file +} |
无论配置如何,我都希望将这些更改从PR提交中排除。我想避免用
问题是我已经不明白这种变化是如何存在的,因为它有一个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # Set the default behavior, in case people don't have core.autocrlf set. * text=auto # Explicitly declare text files you want to always be normalized and converted # to native line endings on checkout. *.c text *.h text *.java text *.css text *.js text *.xml text *.dtd text *.xsl text *.properties text *.txt text *.svg text *.yml text *.md text # Declare files that will always have CRLF line endings on checkout. *.sln text eol=crlf # Denote all files that are truly binary and should not be modified. *.png binary *.gif binary *.jpg binary *.jpeg binary *.eot binary *.ttf binary *.woff binary *.woff2 binary |
在存储库中我运行
此外
我不想隐藏这些变化,就像
我在Ubuntu 18.04上使用
The thing is that I already don't understand how this change can exist ...
此更改显示
某些编辑器能够处理具有缺少终结符的最终行的文件。其他编辑不是甚至没有注意到有一个缺失(大多只是假装有一个)。如果看起来合适,某些编辑器将默认添加终结符,可能带有警告。这里有很多变化。
你没有显示什么特定的
... since there's a
.gitattributes [that includes]
1 *.java text... and I ran
git rm --cached -r . && git add . which should convert all line endings to LF ...
这会将工作树中任何现有的CRLF行结尾转换为索引中仅LF的行结尾。我不相信它会向没有结尾的行添加LF结尾(基于
因此,这表明文件的工作树副本具有最终CRLF作为文件的最后两个字节,或者最终的仅LF换行字节作为文件的最后一个单字节。 Git将