`
jaychang
  • 浏览: 716696 次
  • 性别: 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,保存;

分享到:
评论

相关推荐

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

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

    Git处理换行符问题

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

    使用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与Github首篇巨作课程 Git&Github极速入门与攻坚实战结合课程 一次搞定Git.txt

    Git与Github教程详细介绍了Git的工作机制,Git命令行的基础学习,Git-Eclipse和Nginx的准备工作,Git与Github分支体系,Git与Github的远程和本地工作原理,Git与Github克隆实战和最后的课程精华总结部分,可以帮助...

    git svn转换工具

    svn+git实现离线提交并且不需要到处所有svn版本,速度超快非一般的感觉,超越git本身的git2svn功能。 使用本工具需要安装基础工具: 首先安装git msysgit:https://code.google.com/p/msysgit/downloads/list msysgit...

    git2json:将git日志转换为JSON以便于分析

    将git日志转换为JSON,以便于分析。 免费软件:BSD许可证 文档: : 。 安装 安装git2json的最简单方法是通过pip: pip install git2json 如果您需要最新版本(遇到错误的风险更大),可以克隆此存储库并手动安装...

    git常用命令

    第一次执行会出警告:warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory. 警告处理:需要配置用户信息 git config user....

    git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记

    git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记git...

    GitTfs源码管理器转换,适用于VS2013项目中有Git目录Tfs就无法工作的情况

    GitTfs源码管理器转换,适用于VS2013项目中有Git目录Tfs就无法工作的情况

    Git与SVN比较

    Git与SVN比较Git与SVN比较Git与SVN比较Git与SVN比较Git与SVN比较Git与SVN比较

    brackets-oneliner:括号扩展名,删除所有换行符并将多行文本块转换为一行

    支架oneliner扩展括号扩展名,删除所有换行符并将多行文本块转换为一行。现场演示安装推广经理跑括号选择_File> Extension Manager ... 搜索“ Oneliner”扩展名,然后单击“安装”按钮手动安装在主菜单下,选择...

    20210810git与HTML学习.zip

    20210810git与HTML学习20210810git与HTML学习20210810git与HTML学习 20210810git与HTML学习20210810git与HTML学习20210810git与HTML学习 20210810git与HTML学习20210810git与HTML学习20210810git与HTML学习 20210810...

    git工具git工具

    git工具git工具git工具git工具git工具git工具git工具git工具git工具git工具

    Git-1.9.0 git

    git

    git,git与IDEA,git与github,git与gitee相关操作小结

    git,git与IDEA,git与github,git与gitee相关操作小结

    Git原理详解与实操指南.zip

    Git原理详解与实操指南\pdf\07 忽略文件权限:解决提示文件权限被修改问题-专栏. Git原理详解与实操指南\pdf\08 忽略指定文件或目录:排除项目配置文件-专栏. Git原理详解与实操指南\pdf\09 图形工具使用:各系统...

    淘宝-git优化包 自动配置,只需要一个命令完成所有常用配置

    配置windows下的换行符问题 全局的.gitignore配置,不必在每个仓库下手动配置.gitignore文件了 设置用户昵称和邮箱 设置常用命令缩写 git co = git checkout git br = git branch git ci = git commit git st = git ...

    Git权威指南PDF完整版

    第15章 Git协议与工作协同/ 200 15.1 Git 支持的协议/ 200 15.2 多用户协同的本地模拟/ 202 15.3 强制非快进式推送/ 203 15.4 合并后推送/ 207 15.5 禁止非快进式推送/ 208 第16章 冲突解决/ 210 16.1 拉回操作中的...

    git与Eclipse的整合

    git与Eclipse的整合git与Eclipse的整合git与Eclipse的整合git与Eclipse的整合git与Eclipse的整合git与Eclipse的整合git与Eclipse的整合git与Eclipse的整合

Global site tag (gtag.js) - Google Analytics