从Github克隆git存储库后,如果我打开文件,不进行任何更改并保存文件,则会在git diff
的输出中显示以下内容:
-@import "sync.scss";
\ No newline at end of file
+@import "sync.scss";
据我了解,\ No newline at end of file
应该在没有换行符时标记文件的结尾。这个差异是否意味着git认为最后一行在文件结束后被移动到了? 有没有办法避免这种情况?我想为这个项目做出贡献,而不会在我的提交中添加垃圾空白更改。
这似乎是行结尾的问题。我相当确信该文件最初使用Unix行结尾保存在Mac上。这与我正在使用的设置相同,所以我不确定在保存文档时是什么导致文档更改。
答案 0 :(得分:4)
为了避免这种情况,请始终执行git add -p
,并选择相关的差异以避免不必要的更改。
并更改编辑器设置以匹配项目中使用的约定。
答案 1 :(得分:3)
\ No newline at end of file
属于它上面的一行(意思是该行不以\n
结尾)。您当前的行似乎在最后有一个换行符,这就是为什么您之后看不到“No newline”消息的原因;以及为什么会发生变化。
我想为这个项目做出贡献,而不会在我的提交中添加垃圾空白更改。
(警告:下面的个人意见)
我建议您始终使用换行符结束文件,尤其是在unix / linux环境中工作时。可能有些人认为这是“垃圾”(请问项目维护者对此有何看法),但是当使用posix工具时 - 从简单的cat
开始 - 缺少的换行符将是最好的滋扰和破坏脚本在最坏的情况下改变代码。