我正在开发Linux下的软件,它将使用仅限Windows的编译器进行编译。我希望git将我的文件与CR-LF行结尾存储在Linux上的存储库中,以便能够打包源而不将它们更改为Windows样式。
我的.gitattributes
看起来像是:
*.cpp eol=crlf
*.h eol=crlf
我也尝试了core.eol = crlf
。
但是当我在Linux上进行检查和提交时,git仍在使用LF行结尾。
有没有办法在Linux上使用CR-LF告诉git?
答案 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正在提供这些文件。
请尝试在新的回购上使用上述设置,并告知我们是否有效。