6

从 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 上的。这与我使用的设置相同,所以我不确定是什么导致文档在保存时发生更改。

4

2 回答 2

5
  • 为避免这种情况,请始终这样做git add -p,并且只选择相关的差异以避免提交不需要的更改。

  • 并更改您的编辑器设置以匹配项目中使用的约定。

于 2012-07-10T13:40:49.727 回答
4

属于它上面的\ No newline at end of file行(意味着该行没有以 a 结尾\n)。您当前行的末尾似乎有一个换行符,这就是为什么您在其后看不到“无换行符”消息的原因;以及为什么会发生变化。

我想为这个项目做出贡献,而不在我的提交中添加垃圾空白更改。

(警告:以下个人意见)

我建议您始终以换行符结束文件,尤其是在 unix/linux 环境中工作时。可能这被某些人视为“垃圾”(请向项目维护人员询问他对此的看法),但是当使用 posix 工具时 - 从简单cat的开始 - 缺少的换行符充其量只会令人讨厌并且会中断脚本在最坏的情况下转换代码。

于 2012-07-10T13:51:31.663 回答