如何使用 CRLF 强制 git 提交?

How to force git commit with CRLF?

如果我使用autocrlf,它看起来像这里

                     push    clone
1) true:             x -> LF -> CRLF
2) input:            x -> LF -> LF
3) false:            x -> x -> x

但我想要 git 使用 CRLF 自动提交:

x -> CRLF (if I use LF, it will commit with CRLF)

我可以吗?

提前致谢!!!

编辑:我认为 git 不支持它,所以我强制将 lf 更改为 crlf crlf

您至少可以确保文件已正确签出,eol directive in a .gitattributes file:

# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf

This setting forces Git to normalize line endings for this file on checkin and convert them to CRLF when the file is checked out.

结合 git config --global core.autocrlf false 可以确保您的文件在您的工作树中可用。


I want when I commit file with CRLF or LF, git change it to CRLF.

使用上面的设置,这似乎是不可能的,因为默认规范化总是在签入时转换为 LF。
这只是为了确保您的文件使用正确的 eol(行尾)签出。

但是如果你想强制 crlf 签入,你需要手动执行。
尝试:

git config --global core.autocrlf false

确保在任何 .gitattributes 文件中没有任何 core.eoltext eol 指令(以避免任何 "renormalization")

并对任何使用错误的 eol 签出的文件执行 unix2dos

最后,添加并提交:那些带有CRLF的文件仍然应该用CRLF签入。

您可以使用一些模块将 LF 更改为 CRLF

但我认为你不需要更改它,只需使用 autocrlf=true