我在 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.autocrlfand设置不同的值core.eol,例如将它们分别设置为trueand crlf,然后做git filter-branch --tree-filter HEAD. 我得到了错误error: core.autocrlf=input conflicts with core.eol=crlf。我检查git config --get core.autocrlf并返回true。那么为什么我会收到错误消息?
我很困惑。我想要的是我的工作树中的 CRLF 行结尾,并且提交不会改变我的行结尾,即从一开始就提交时它们是 LF,并保持这种状态。我怎样才能做到这一点?