text
要求 Git 执行换行符转换。每当 Git 进行此操作时,它将在存储库中存储 LF 结尾,并在检出工作树中的文件时进行转换。 text=auto
要求 Git 在文件开头搜索 NUL 字节,如果找到,则该文件是二进制文件,不会执行转换;否则,该文件是文本文件,并进行转换。这通常在大多数情况下都可以正常工作,并且是一个明智的默认值。eol
属性。如果设置了 eol
,那么(a) 文件会自动设置为 text
(b) 并始终使用该行结束符。* text=auto
表示“猜测这是否是文本文件,如果是,则使用用户首选的行结束符检查此文件的检出”。从 Git 2.10 开始,eol=lf
仅适用于在此情况下被猜测为text
的文件。通常,eol
适用于显式设置了 text
的文件、设置了 text=auto
并检测到文件为文本,或者未指定 text
的文件;在 Git 2.10 及更高版本中,它不会影响显式标记为-text
或使用 text=auto
检测为二进制的文件。* text eol=lf
。否则,您可以单独指定不同类型的文件:* text=auto
*.c text
*.jpg -text
*.sh text eol=lf
*.bat text eol=crlf
text=auto eol=whatever
不会覆盖text
的“auto”值:https://github.com/git/git/blob/master/Documentation/RelNotes/2.10.0.txt#L248 - Aleksandr Hovhannisyaneol
,“它使得行末转换无需进行任何内容检查,实际上是设置了文本属性。” 可能行为已经改变,但所记录的行为就是我所指定的。 - bk2204text=auto eol=lf
命令时,text=auto
不再被忽略。(它最终只是多余的。) - Aleksandr Hovhannisyan* text=auto
允许用户使用 core.autocrlf
或 core.eol
指定结尾。 * text=auto eol=lf
将始终使用 LF 结尾。 在任何情况下都不会修改二进制文件。 是的,我将要推送的分支在 这里。 - bk2204