我在 Windows 上。我已将我的设置core.eol
为native
. 我已将我的设置core.autocrlf
为false
. 我很确定我从包含 CRLF 行结尾的文件开始,它们都是.clj
,.md
或.gitignore
. 我答应了他们。然后在下一次提交中,我提交了以下内容.gitattributes
* text=auto
*.bat text
*.bib text
*.clj text
*.java text
*.md text
*.tex text
*.txt text
*.jpg binary
*.pdf binary
*.png binary
在那个提交中,差异表示每个文件的每一行都发生了变化(我假设的行结尾)。
设置core.eol
为 后native
,我以为我会在工作树中获得 CRLF,但事实并非如此(仅适用于.gitattributes
文件,没有其他文件,包括.gitignore
)。我之前没有注意到,因为我使用的是 Vim。
我认为 gitattributes 提交的差异看起来很难看,所以我尝试为core.autocrlf
and设置不同的值core.eol
,例如将它们分别设置为true
and crlf
,然后做git filter-branch --tree-filter HEAD
. 我得到了错误error: core.autocrlf=input conflicts with core.eol=crlf
。我检查git config --get core.autocrlf
并返回true
。那么为什么我会收到错误消息?
我很困惑。我想要的是我的工作树中的 CRLF 行结尾,并且提交不会改变我的行结尾,即从一开始就提交时它们是 LF,并保持这种状态。我怎样才能做到这一点?