`
jaychang
  • 浏览: 731256 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

git 换行符LF与CRLF转换问题

 
阅读更多

一、背景

在各操作系统下,文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。但 DOS/Windows 一直使用 0x0D0A(CRLF)作为换行符。Git提供了一个“换行符自动转换”功能。这个功能默认处于“自动模式”,当你在签出文件时,它试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。Git 的“换行符自动转换”功能听起来似乎很智能、很贴心,因为它试图一方面保持仓库内文件的一致性(UNIX 风格),一方面又保证本地文件的兼容性(Windows 风格)。但遗憾的是,这个功能是有 bug 的,而且在短期内都不太可能会修正。

二、解决方案

1.Git设置

git config --global core.autocrlf false
git config --global core.safecrlf true
含义:
AutoCRLF
#提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true

#提交时转换为LF,检出时不转换
git config --global core.autocrlf input

#提交检出均不转换
git config --global core.autocrlf false
SafeCRLF
#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true

#允许提交包含混合换行符的文件
git config --global core.safecrlf false

#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn

2.IDE设置使用UNIX换行符

IDEA的设置File -> Settings
Editor -> Code Style
Line separator (for new lines) ,选择:Unix and OS X (\n)

对已使用Windows换行符的文件,可以使用Sublime Text打开,
View->Line Endings,选Unix,保存;

分享到:
评论

相关推荐

    CR LF CRLF转换

    描述中提到的"Mac Unix Linux Windows之间的换行符转换工具"是指用于解决这个问题的应用程序。这些工具可以将文件中的换行符格式转换为对应操作系统所接受的形式。例如,`UNIX2DOS`和`DOS2UNIX`就是两个常用的命令行...

    GIT 换行符自动转换导致整个文件被修改的解决方案

    不少开发者可能遇到过这个...而git入库的代码采用的是LF格式,它考虑到了跨平台协作的场景,提供了“换行符自动转换”的功能:如果在Windows下安装git,在拉取文件时,会自动将LF换行符替换为CRLF;在提交时,又会将C

    Git处理换行符问题

    首先,你需要知道不同的操作系统对换行符的定义会有所不同,Unix或类Unix操作系统的换行符叫做LF,而windows系统的叫做CRLF,二者具有很大的区别:Unix系统里,每行结尾只有“<换行>”,即"n";Windows系统里面,...

    IDEA全量替换一次性解决旧项目并将所有文件换行符改为LF问题

    标题提到的“IDEA全量替换一次性解决旧项目并将所有文件换行符改为LF问题”主要是指如何使用IDEA批量修改项目中所有文件的换行符,将其统一为LF格式。这一操作对于维护项目的一致性和跨平台兼容性有着显著的帮助。 ...

    使用IDEA提交代码时提示You are about to commit CRLF line separators to the Git repository

    背景介绍: IDE工具为IDEA,之前用windows电脑...LF -UNIX或macOS使用,换行符 \n CR -Classic macOS使用,换行符 \r CRLF -Windows使用,换行符 \r\n 解决方法: 点击idea右下角的LF改为CRLF即可 作者:EricXiao666

    git帮助文档中文 清晰 全面

    在跨平台协作时,Git提供了多种配置选项来处理不同操作系统之间的差异,其中最常见的是关于文本文件换行符的处理。 ##### 1. `core.autocrlf` 配置 - **作用**:用于处理不同操作系统间文件行尾符号的差异。 - **...

    超级详细的git安装使用教程

    10. 对于换行符,不同的操作系统有不同的标识,Windows 系统下,换行符是 CRLF,而在 Linux 系统中,换行符是 LF,默认的勾选方式是 Git 会根据当前的操作系统,自动将换行符适应成相应的标识。 二、 Git 基本命令 ...

    Git for windows 10 64

    在安装过程中,用户需要注意设置Git的相关配置,如用户信息(用户名和电子邮件地址)、行结束符转换(LF或CRLF)以及是否将Git命令添加到PATH环境变量中。 总的来说,Git for Windows 64为Windows用户提供了一个...

    git的配置文件

    `autocrlf`选项可以处理行结束符的问题。`input`表示在添加到仓库时,将DOS/Windows风格的CRLF转换为LF;`output`则是在检出时将LF转换回CRLF。 4. **颜色设置**: ``` [color] ui = auto ``` Git支持彩色...

    git 常用经验

    这条命令关闭了Git对CRLF(Windows换行符)到LF(Unix换行符)的自动转换。 2. **启用安全模式:** ```bash git config --global core.safecrlf true ``` 启用安全模式可以确保文件中的换行符不会被意外改变...

    fcrlf:文件的CRLF行定界符的转换器

    用户可以通过命令行接口来运行它,将文件中的行结束符从CRLF(Windows格式)转换为LF(Unix/Linux格式)或者反之。这在开发过程中尤其有用,因为开发者可能需要在不同的操作系统上测试代码,而代码中包含的文本文件...

    windows下git安装包

    Windows系统使用CRLF(回车换行)作为行结束符,而Unix系统使用LF(换行)。这里可以选择自动转换或保留原始格式。通常,选择"Checkout as-is, commit as-is"可以兼容大部分情况。点击"Next"。 8. 选择默认编码 ...

    git for windows(32+64)

    2. **行尾换行符**:Windows使用CRLF(回车换行),Unix使用LF(换行)。使用`core.autocrlf`配置来转换行尾。 **Git与其他工具的集成:** 1. Visual Studio Code、IntelliJ IDEA等IDE都内置了Git支持。 2. ...

    Git-2.15.1.2-64-bit官方版

    5. CRLF/LF转换:自动处理Windows和Unix换行符差异,保证跨平台兼容性。 在安装Git-2.15.1.2-64-bit后,用户可以开始配置自己的Git环境,包括设置用户名和邮箱、选择文本编辑器、以及配置默认的行为。接着,用户...

    git安装软件

    5. **文件格式化**:Git默认使用LF(Linux风格)作为行结束符,但Windows系统使用CRLF(Windows风格)。你可以根据需要选择是否在写入文件时自动转换行结束符。 6. **SSH客户端**:Git提供了OpenSSH作为默认的SSH...

    Git Windows 64位安装包

    3. 配置文本编码:由于Windows系统默认使用CRLF(回车换行)作为行结束符,而Unix系统使用LF(换行)。可以在安装时选择将所有文件转换为LF,或者在后期通过`core.autocrlf`配置项进行设置。 4. 设置用户名和邮箱:...

    解决git报错“The file will have its original line endings in your working directory”的方法

    接下来,通过`git config core.autocrlf false`命令禁用Git的自动换行符转换功能。`core.autocrlf`配置项控制Git是否自动转换行结束符。设置为`false`可以防止Git尝试修改文件中的行尾换行符。 3. **重新添加文件...

    windows的git客户端

    5. **设置行尾字符**:Git默认处理LF(Unix风格)行尾,但Windows文件通常使用CRLF。你可以选择在读取和写入文件时自动转换行尾字符,以确保跨平台兼容性。 完成安装后,你可以在开始菜单找到Git Bash和Git GUI这两...

    github创建仓库及gitbash代码管理

    5. 如果遇到 "LF will be replaced by CRLF" 的警告,这是由于文本换行符格式不同,可以在 `.gitattributes` 文件中设置来避免此问题。 在进行代码管理时,还需要注意以下几点: 1. 使用 `git status` 检查当前...

Global site tag (gtag.js) - Google Analytics