我有一个Git存储库(最初是CVS,然后是SVN,现在是Git),包含一个已在Linux上部署了一段时间的Rails项目.一切似乎都运行良好.
现在我已经转换为git,我发现存储库CRLF
中的许多文件都包含行结尾.我喜欢它,所有人都是一致的(LF
),但不是以丢失每个有CRLF
行结尾的文件的编辑历史为代价.
你能想到我不能保留文件的原因吗? 我似乎记得shell脚本或cron文件存在问题或者没有很好的响应CRLF
.
另外,我知道所有关于Git的选项core.autocrlf
和core.safecrlf
,但有一些办法把它从转换的所有文本文件CRLF
来LF
结账(用于Linux端) ......即core.autolf选项或类似的东西?
如果您可以重写存储库的历史记录(请参阅重写历史记录的问题),您可以使用git filter-branch将CRLF转换为LF:
git filter-branch --tree-filter 'find . -path './.git' -prune -o -type f -exec dos2unix \{} \;' HEAD
请注意,如果存储库中有二进制文件,则必须优化find命令以排除它们.