gitattribute 行尾设置

gitattribute end of line setting

我正在开发一个代码存储库,所有开发人员都使用 windows PC 和 eclipse 作为他们的 IDE 与存储库协作。存储库管理员已在父目录中设置此 .gitattributes 文件,内容如下:

* text eol=crlf

我读到 here git 在内部维护对象数据库以写入(提交)/读取(签出)更改。

.gitattributes 中的上述设置是否会检出带有 CRLF(windows) 行结尾的代码并且存储库中的文件将以 CRLF 维护?

在 Eclipse 中启用 "Show White Spaces" 选项 IDE 显示所有文件结尾都是换行符 (LF),没有回车符 return(CR)。

有人能指出这种行为的原因吗?

在不同的存储库中,它有

* text eol=lf*.java eol=crlf*.csv eol=crlf*.jar binary*.sql eol=crlf

这是否意味着所有文件 (.java/.csv/.sql) 都会有 CRLF 而其他文件会有 LF 行尾?

.gitattributes 信息的一个很好来源是 gitscm.com 文档 (https://git-scm.com/docs/gitattributes#__code_text_code)

  1. 我不相信 * text eol=crlf 会起作用。应该是* text crlf

  2. 您需要将单行 * text eol=lf*.java eol=crlf*.csv eol=crlf*.jar binary*.sql eol=crlf 分成多行。

将这些行添加到您的 . gitattributes 文件中。

# other files will have LF
* text=lf

# .java .csv .jar .sql will have CRLF
*.java eol=lf 
*.csv eol=crlf
*.jar eol=crlf
*.sql eol=crlf