Git因换行符不一致导致反复有修改记录
前情
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,我公司目前都是基于Git来管理项目代码。
坑位
最近刚刚入职一家新公司,本地环境都配好后,我git clone代码后,只是简单的浏览了代码,发现git就有了修改记录,而且是整个文件都是被修改了,一看只是换行符不同。
Why?
这个问题是由于不同的操作系统使用不同的换行符导致的。例如,Windows 系统使用 CRLF(回车换行)作为换行符,而 Linux 和 MacOS 系统使用 LF(换行)作为换行符。
解决方案
我们只要修改Git的配置即可
方案1:
打开命令行,执行如下命令即可:
Git 有一个全局配置项叫做 core.autocrlf,它可以控制 Git 在提交和检出时是否对换行符进行转换。它有三个可选值:
true:表示在提交时将 CRLF 转换为 LF,在检出时将 LF 转换为 CRLF 。这个选项适合 Windows 用户使用。input:表示在提交时将 CRLF 转换为 LF,在检出时不进行转换。这个选项适合 Linux 和 MacOS 用户使用。false:表示不进行任何转换。这个选项适合想保持原始换行符不变的用户使用。
git config --global core.autocrlf [input | true | false]
方案2:
也可以直接修改.git/config文件
[core]
autocrlf = [input | true | false]
方案3:
除了 core.autocrlf 之外,还有一个配置项叫做 core.eol(end of line),它可以指定仓库中文件使用哪种换行符。它有三个可选值:
lf:表示仓库中文件使用 LF 作为换行符。crlf:表示仓库中文件使用 CRLF 作为换行符。native:表示仓库中文件使用当前操作系统默认的换行符。
git config --global core.eol [lf | crlf | native]
方案4:
也可以直接修改.git/config文件
[core]
eol = [lf | crlf | native]
总结
上面4种方案其实是二种方式,一种是怎么转换换行符,一种是怎么规定用哪一种换行符,我选择的是第一种autocrlf为false,不管换行符问题,其实最的方式是团队规定统一用一种换行符
Git因换行符不一致导致反复有修改记录的更多相关文章
- Git坑换行符自动转换 [转载]
转自https://www.cnblogs.com/zjoch/p/5400251.html 源起 一直想在 GitHub 上发布项目.参与项目,但 Git 这货比较难学啊.买了一本<Git 权 ...
- Git在不同环境换行符设置
首先我们在eclipse查看两个环境文件的换行符区别: 产生背景 关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别.在计算机还没有出现之前,有一种叫 ...
- 有关git的换行符的处理问题
签入签出时对换行符的操作: #签出时将LF转换为CRLF,签入时将CRLF转换为LF git config --global core.autocrlf true #签出时不转换,签入时转换为LF g ...
- windows下建立文件的换行符^M导致linux下的shell脚本执行错误的解决方式
常常在windows下编辑的文件远程传送到linux下的时候每行末尾都会出现^M.这将导致shell脚本执行错误,主要是由于dos下的编辑器和linux下的编辑器对文件末行的回车符处理不一致导致. 主 ...
- Git 处理换行符的配置方法
core.autocrlf If you're programming on Windows and working with people who are not (or vice-versa), ...
- git跨平台换行符不兼容
https://help.github.com/articles/dealing-with-line-endings/#platform-all
- sql数据库查询结果字段包含换行符导致复制到Excel发生错位问题的解决
问题描述:在工作过程中,有时会遇到这样的问题,写好sql查询语句在数据库中查询数据,看到行数(比如说是1000行),但是把查询结果复制到Excel里面,却发生了行列错位问题,而导致Excel里面的行数 ...
- git 换行符LF与CRLF转换问题
git 换行符LF与CRLF转换问题 一.背景 在各操作系统下,文本文件所使用的换行符是不一样的.UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),后来 ...
- 菜鸟教程之工具使用(八)——EGit禁止自动转换回车换行符
众所周知,Windows和Linux系统的回车换行是不一样的.想要进一步了解它们的可以阅读下面的介绍,不感兴趣的可以直接跳过. 产生背景 关于“回车”(carriage return)和“换行”(li ...
- GitHub 第一坑:换行符自动转换
源起 一直想在 GitHub 上发布项目.参与项目,但 Git 这货比较难学啊.买了一本<Git 权威指南>,翻了几页,妈呀,那叫一个复杂,又是 Cygwin 又是命令行的,吓得我不敢学了 ...
随机推荐
- 火山引擎数智平台:高性能ChatBI的技术解读和落地实践
导读:大模型能力的发展和成熟,催生出新一代智能化 BI-- ChatBI,即通过自然语言处理(NLP)与大型语言模型(LLMs)的结合,极大简化数据分析过程,提高效率并降低分析门槛.火山引擎数智平台旗 ...
- MyBatisPlus——代码生成器
代码生成器 快速生成各项代码 步骤 创建Generator类,并创建main方法 创建代码生成器 AutoGenerator autoGenerator = new AutoGenerator(); ...
- 为什么用 AWS CLI?因为我懒得点鼠标!
在这篇博客中,我们一起深入探索 AWS CLI 的世界,从零开始,逐步构建在云端的家园.将介绍 AWS CLI 的基本功能和使用场景,如何创建 IAM 用户.VPC.子网.安全组.EC2 实例等,甚至 ...
- Android Qcom USB Driver学习(十一)
基于TI的Firmware Update固件升级的流程分析usb appliction layers的数据 USB Protocol Package ①/② map to check password ...
- Android 12 关机重启流程
1. 关机流程 Android上层触发关机的入口很多,但最终几乎都是调用ShutdownThread.shutdown来实现.如下是一些常见的调用关机的点: StatusBarManagerServi ...
- .NET周刊【10月第1期 2024-10-06】
国内文章 基于DPAPI+RDP技术实现本地打开远程程序,并映射到本地机器桌面上 https://www.cnblogs.com/weskynet/p/18445584 该教程讲述如何使用Remote ...
- js的宏任务和微任务有哪些,是怎么执行的 ?
事件循环有宏任务和微任务: 宏任务所处的队列就是宏任务队列,队列可以有多个,第一个队列只有一个任务就是执行主线程的js代码,剩余队列任务有setTimeout setInterval :微任务所处的 ...
- docker对的tomcat、mysql、redis、nginx的安装
本章篇章主要讲解了docker对常用软件的安装说明 总体步骤:搜索镜像.拉取镜像.查看镜像.启动镜像.停止容器.移除容器 tomcat docker seacher tomcat//也可以在docke ...
- MySQL 通过 Next-Key Locking 技术(行锁+间隙锁)避免幻读问题
在MySQL中,InnoDB引擎通过Next-Key Locking技术来解决幻读问题.幻读是一种事务并发问题,通常出现在Repeatable Read隔离级别下的范围查询操作中.幻读的现象是,事务在 ...
- 什么是SCI, SCIE, JCR和影响因子(IF)?
SCI(Scientific Citation Index):是美国科学信息研究所(ISI)编辑出版的引文索引类刊物,创刊于1964年.分印刷版.光盘版和联机板等载体.印刷版.光盘版从全球数万种期刊中 ...