Ruby 关于 Rails、Git 和 CRLF - 非平凡

Ruby on Rails, Git and CRLF - nontrivial

我正在 Rails 上学习 Ruby 并使用 Windows 7. 当我尝试将更改提交到 Git 时,我收到 fatal: LF would be replaced by CRLF 消息。

似乎 rails generate 生成的文件带有 LF,而不是 CRLF。当然,我可能会从

切换
git config --global core.autocrlf true
git config --global core.safecrlf true


git config --global core.autocrlf true
git config --global core.safecrlf warn

但我不喜欢将任何提交的二进制文件粉碎成碎片的可能性。

我试图避免 .gitattributes 的问题,但我的台词像

* text=auto
*.rb text

没有帮助。

有没有办法让Rails生成以CRLF结尾的文件?或者有没有办法让 Git 自动转换 .rb.erb 文件,而不是其他文件?

I don't like the possibility of crushing any committed binary into pieces.

您确定这是一个真正的问题吗?

如果您关闭警告 (core.autocrlf true),git 将在您提交时进行调整,您可以继续保持高效。

如果您确实有充分的理由不想这样做,您将遇到困难,因为我认为没有简单的方法(总有 一些方式)让 Rails 生成以 CRLF 结尾的文件并且 git 根据文件类型自动转换很奇怪。

我当然有可能是错的,但似乎您在与您的工具作对时尝试了太多?

可能有用的参考:git commit creates assets and temporary files for some reason

如果您真的想要尝试配置git以进行这些更改,您可以查看git属性过滤器驱动程序如本回复中所建议:Can git automatically switch between spaces and tabs?

上述解决方案的另一个有用参考: