如何用CRLF强制git commit?

时间:2018-07-08 05:51:57

标签: git core.autocrlf

如果我使用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不支持它,因此我用[crlf]强制将lf更改为crlf1

2 个答案:

答案 0 :(得分:1)

您至少可以确保使用eol directive in a .gitattributes file正确检出文件:

# 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指令(以避免任何“重新规范化”)

然后对检出错误eol的任何文件执行unix2dos

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

答案 1 :(得分:1)

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

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