如何在git中存储CR-LF行结尾的文件?

时间:2012-01-12 10:30:38

标签: git newline

我正在开发Linux下的软件,它将使用仅限Windows的编译器进行编译。我希望git将我的文件与CR-LF行结尾存储在Linux上的存储库中,以便能够打包源而不将它们更改为Windows样式。

我的.gitattributes看起来像是:

*.cpp eol=crlf
*.h   eol=crlf

我也尝试了core.eol = crlf。 但是当我在Linux上进行检查和提交时,git仍在使用LF行结尾。

有没有办法在Linux上使用CR-LF告诉git?

2 个答案:

答案 0 :(得分:0)

Windows仅编译器是否仅通过仅限行结束而被绊倒?如果没有,请将其设置为false。

你只需要在repo上将auto crlf设置为true,这将为编译器设置工作树。

答案 1 :(得分:0)

我刚试过这个[Linux; git版本2.1.0] 最好我可以看到它使用以下设置:

$ cat .gitattributes 
.gitattributes  text
.gitignore  text
*.cpp       text
*.h     text

$ cat ~/.gitconfig 
...
[core]
    autocrlf = false
    safecrlf = true
    eol  = crlf

在此配置中,git仅允许crlf文件进入数据库,并为git add上的lf提供致命错误。

删除safecrlf设置,现在git add有效但现在您收到了lf文件的警告。

现在rm签到的文件和reset --hard会提供一个crlf文件 - 无论是以lf还是crlf签入。

我怀疑:你已经已经检查了LF文件,现在git正在提供这些文件。

请尝试在新的回购上使用上述设置,并告知我们是否有效。