ruby-on-rails - 在 Linux 上部署的 Rails 项目中,CRLF 行是否正常?

标签 ruby-on-rails linux git deployment newline

我有一个 Git 存储库(最初是 CVS,然后是 SVN,现在是 Git),其中包含一个 Rails 项目,该项目已经在 Linux 上部署了一段时间。一切似乎都运行良好。

现在我已经转换为 git,我看到存储库中我的许多文件都包含 CRLF行尾。我希望所有内容都保持一致 (LF),但不会以丢失具有 CRLF 行结尾的每个文件的编辑历史为代价。

你能想到我不能让文件保持原样的任何原因吗?我似乎记得 shell 脚本或 cron 文件或没有响应 CRLF 很好。

此外,我对 Git 选项 core.autocrlfcore.safecrlf 了如指掌,但是有什么方法可以将所有文本文件从CRLFLF 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/

相关文章:

linux - 用最后一个已知列替换空/空白列 (sed/awk/script)

GitHub 找到在 git cli 上找不到的提交

php - Composer : Develop directly in vendor packages

ruby-on-rails - 限制 Imagemagick 使用的空间和内存

linux - "Unstable"NFS挂载点

linux - 为什么在应用程序上发出的任何信号都没有正常退出?

git - 在 master 上重新建立功能分支,不包括以前的功能分支

ruby-on-rails - 修改迁移是否可以接受

ruby-on-rails - Ruby on Rails 多个图像连接到一个对象

ruby-on-rails - 具有单表继承的Rails局部