git 如何在单个文件中用lf替换crlf

aurhwmvo  于 2023-02-28  发布在  Git
关注(0)|答案(7)|浏览(142)

如何将一个包含crlf回车行的文件转换为包含lf回车行的文件?
当我把文件推送到远程仓库时,git已经正确地自动处理了crlf到lf的转换,但是在这个特殊的例子中,我不是在推送到仓库,而是在上传一个文件,使用HTML表单上的一个文件字段,上传到一个网站,这个网站要求文件有lf行返回,所以我需要能够单独转换这个文件。
我在这台计算机上可用的潜在有用的工具是git和Dreamweaver CC 2014.1。(我猜Word、写字板和记事本不是可行的选择,但我愿意接受纠正。
我在Windows 7上使用git行命令。

tquggr8v

tquggr8v1#

windows上的git安装通常包含dos2unix工具。

dos2unix <file>

但在您的情况下,您应该使用.gitattributes来防止文件在windows上转换。
.gitattributes文件可能如下所示

*.vcproj    eol=crlf
*.sh        eol=lf

.gitattributes documentation

设置为字符串值“lf”

此设置强制Git在签入时将行尾规范化为LF,并防止在 checkout 文件时转换为CRLF。
只需提交.gitattributes文件,您的文件将在每个以LF行结尾的系统上 checkout 。

ljsrvy3e

ljsrvy3e2#

在记事本++底部面板右侧,右键单击Windows(CR LF)区域并选择UNIX(LF),这将用LF替换所有CRLF

以下是IntelliJ中右下角的设置

以下是右下角

的VsCode设置

nuypyhwy

nuypyhwy3#

要将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格式的文件添加额外的回车符。我希望有人会从中得到一些用处。

wpx232ag

wpx232ag4#

Word和写字板是要避免的!永远不要尝试用它修改一些代码,他们会为文件添加额外的代码。
要转换行尾,只需使用Notepad++Scite,然后选择文件尾:Windows、Mac、Linux操作系统。
下面是一个使用Scite的示例:

yxyvkwin

yxyvkwin5#

对于单个文件,您可以使用记事本++替换实用程序:

  • 转到搜索-〉替换(或ctrl-h)
  • 在对话框中选择“扩展”搜索模式
  • 将“查找内容”设置为:\r\n
  • 将“替换为”设置为:\n
  • 单击“全部替换”
rbl8hiat

rbl8hiat6#

在你的根文件夹中,创建一个文件'. gitattributes'并添加以下行:

  • eol = lf

保存文件夹并:
git add ...你的项目的所有文件都将LF

3bygqnnd

3bygqnnd7#

您可以使用crlf工具

crlf file.txt --to lf       # change crlf to lf
crlf file.txt --to crlf     # change lf to crlf
crlf -R directory/ --to lf  # recursive

GitHub:https://github.com/t-regx/crlf

相关问题