我有一个 Git 存储库(最初是 CVS,然后是 SVN,现在是 Git),其中包含一个 Rails 项目,该项目已经在 Linux 上部署了一段时间。一切似乎都运行良好。
现在我已经转换为 git,我看到存储库中我的许多文件都包含 CRLF
行尾。我希望所有内容都保持一致 (LF
),但不会以丢失具有 CRLF
行结尾的每个文件的编辑历史为代价。
你能想到我不能让文件保持原样的任何原因吗?我似乎记得 shell 脚本或 cron 文件或没有响应 CRLF
很好。
此外,我对 Git 选项 core.autocrlf
和 core.safecrlf
了如指掌,但是有什么方法可以将所有文本文件从CRLF
到 LF
checkout 时(对于 linux 端) ...即 core.autolf 选项或类似的东西?
最佳答案
如果您可以重写存储库的历史记录(请参阅 problems with rewriting history),您可以使用 git filter-branch 将 CRLF 转换为 LF:
git filter-branch --tree-filter 'find . -path './.git' -prune -o -type f -exec dos2unix \{} \;' HEAD
请注意,如果您的存储库中有二进制文件,则必须优化查找命令以排除它们。
关于ruby-on-rails - 在 Linux 上部署的 Rails 项目中,CRLF 行是否正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/446244/