Git-在gitattributes中设置text = auto和eol = lf

时间:2018-11-12 22:02:53

标签: git

我想让git使用我仓库中的.gitattributes文件对带有LF行尾的 text 文件进行规范化。

但是,我尝试过* text=auto,该操作会在Windows上检出CRLF行尾的文件,并在将更改添加到Git后将它们转换回LF。

我也尝试过* eol=lf,但这也为非文本文件(例如.jar文件)设置了行尾。

我尝试将两个行都添加到同一行(* text=auto eol=lf),但这和添加* eol=lf一样。

是否有一种方法可以使用.gitattributes来仅对文本文件的行尾进行规范化,而不会在Windows平台上将它们检出为LF?

1 个答案:

答案 0 :(得分:0)

Git有一些启发式的方法来猜测文本文件是什么,但是由于它并不总是能够正确地猜测,因此您可以指定要影响的文件类型。例如,如果您正在处理Java项目,则可以编写以下内容

n >= 0

这将导致在Windows上使用CRLF和在Unix上使用LF检出Java文件,同时在存储库中存储LF。如果要在所有系统上使用LF,请编写如下内容:

*.java text
*.jar -text

指定*.java eol=lf *.jar -text 意味着您不希望这些文件受-text的影响,该选项使Windows系统看到CRLF并将LF保留在存储库中。您可以组合使用多种类型的行来影响不同的文件。