首页 > 解决方案 > 如何使用 CRLF 强制 git 提交?

问题描述

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

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

但我想用 CRLF 进行 git 自动提交:

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

我可以做吗?

预先感谢 !!!

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

标签: gitcore.autocrlf

解决方案


您至少可以使用文件中的eol指令确保.gitattributes文件已正确签出:

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

此设置强制 Git 在签入时规范化此文件的行尾,并在签出文件时将其转换为 CRLF。

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


我希望当我使用 CRLF 或 LF 提交文件时,git 将其更改为 CRLF。

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

但是,如果您想在签入时强制使用 crlf,则需要手动执行此操作。
尝试:

git config --global core.autocrlf false

确保您在任何 .gitattributes 文件中没有任何core.eoltext eol指令(以避免任何“重新规范化”)

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

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


推荐阅读