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

Dan*_*ley 1 linux git deployment newline ruby-on-rails

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

现在我已经转换为git,我发现存储库CRLF中的许多文件都包含行结尾.我喜欢它,所有人都是一致的(LF),但不是以丢失每个有CRLF行结尾的文件的编辑历史为代价.

你能想到我不能保留文件的原因吗? 我似乎记得shell脚本或cron文件存在问题或者没有很好的响应CRLF.

另外,我知道所有关于Git的选项core.autocrlfcore.safecrlf,但有一些办法把它从转换的所有文本文件CRLFLF结账(用于Linux端) ......即core.autolf选项或类似的东西?

dav*_*nio 10

如果您可以重写存储库的历史记录(请参阅重写历史记录的问题),您可以使用git filter-branch将CRLF转换为LF:

git filter-branch --tree-filter 'find . -path './.git' -prune -o -type f -exec dos2unix \{} \;' HEAD
Run Code Online (Sandbox Code Playgroud)

请注意,如果存储库中有二进制文件,则必须优化find命令以排除它们.