如何将具有crlf行返回的单个文件转换为具有lf行返回值?
当我将文件推送到远程存储库时,git已经正确地自动处理文件的crlf到lf转换,但在这种特殊情况下,我没有对存储库进行推送。相反,我正在使用HTML表单上的文件字段将文件上载到需要该文件具有lf行返回的网站。所以我需要能够单独转换这个文件。
我在这台计算机上可用的潜在有用工具是git和Dreamweaver CC 2014.1。 (我猜测Word,写字板和记事本不是可行的选择,但我可以接受纠正。)
我使用的是Windows 7并使用git line命令。
答案 0 :(得分:20)
Windows上的git安装通常包括dos2unix
工具。
dos2unix <file>
但在您的情况下,您应该使用.gitattributes
来防止在Windows上转换文件。
.gitattributes
文件可能如下所示
*.vcproj eol=crlf
*.sh eol=lf
来自.gitattributes documentation
设置为字符串值“lf”
此设置强制Git在签入时将行结尾标准化为LF并阻止转换为CRLF 文件签出时。
只需提交.gitattributes
文件,您的文件就会在LF
行结尾的每个系统上结帐。
答案 1 :(得分:3)
要从Windows风格的文本转换为Unix风格的文本:
perl -pe 's/\r$//g' < windows_file.txt > unix_file.txt
要从Unix风格的文本转换为Windows风格的文本:
perl -pe 's/(?<!\r)\n/\r\n/g' < unix_file.txt > windows_file.txt
这个“Unix-to-Windows”命令是“安全的”,我的意思是它不会向已经是Windows格式的文件添加额外的Carriage-Returns。我希望有人可以使用它。
答案 2 :(得分:2)
答案 3 :(得分:1)
Word和wordpad是要避免的! 从不尝试用它修改一些代码,他们会为文件添加额外的代码。
要转换行结束,只需使用Notepad++或Scite,然后选择文件结尾:Windows,Mac,Linux。
以下是使用Scite的示例:
答案 4 :(得分:1)
对于单个文件,您可以使用Notepad ++替换实用程序:
\r\n
\n
答案 5 :(得分:0)
在您的根文件夹中,创建文件'.gitattributes'并添加以下行:
保存文件夹和:
git add。 ... 您项目的所有文件都会LF