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 又是命令行的,吓得我不敢学了 ...
随机推荐
- 项目发布后项目时间和linux时间不一致
查阅了很多资料,本来总以为是项目的问题,启动前端,连接不同的后台,本地项目时间是正确的,部署到linux Docker容器就不行.很纳闷...... 基于以上,还是决定记下来,以便后来的人查阅,解决问 ...
- 从0到1搭建权限管理系统系列四 .net8 中Autofac的使用(附源码)
说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...
- Ant Design Vue 在表格中插入图片
这两天一直在用 Antdv 做一些小 demo,今天在做表格的时候想在表格中插入图片,简单翻了下文档和国内的博客,发现所有的方法竟然都不好使,最后还是在官网的示例代码中看到相关的部分,不得不说这种 u ...
- 云原生周刊:Istio 1.20.0 发布 | 2023.11.20
开源项目推荐 DevPod DevPod 是一款纯客户端工具,可在任何后端基于 devcontainer.json 创建可重现的开发人员环境.每个开发者环境都在一个容器中运行,并通过 devconta ...
- OpenFunction 0.6.0 发布: FaaS 可观测性、HTTP 同步函数能力增强及更多特性
OpenFunction 是一个开源的云原生 FaaS(Function as a Service,函数即服务)平台,旨在帮助开发者专注于业务逻辑的研发.在过去的几个月里,OpenFunction 社 ...
- KubeKey 2.0.0 发布:让离线部署 K8s 更加便捷
2022 年 3 月 8 日,KubeKey 2.0.0 正式发布,这是 KubeKey 的第 7 个正式版本,也是非常重要的一个版本.该版本新增了清单(manifest)和制品(artifact)的 ...
- Spring中的事务提交事件
如果想在spring操作事务结束后执行一些代码,应该怎么办? 为什么要这样?比如我们在事务中给其他系统发了消息,期望事务提交后过一会收到这个系统的回应,然后操作刚刚提交的数据.但是如果回应来的太快就像 ...
- javascript语法--for in、for of和forEach
首先看简单for循环效果,功能最基本,但可以实现所有循环功能 for (let i = 0; i < list.length; i++) { } 接下来看for in.for of和forEac ...
- JS 数组转对象 对象转数组 对象数组互相转换 数组对象互相转换
JS 数组转对象 对象转数组 对象数组互相转换 数组对象互相转换 声明一个函数,arr_obj ,里面接收一个参数,参数类型只接受对象或者数组 如果没有传递任何参数 或者 传递的参数类型不符合要 ...
- NCNN 模型推理详解及实战
一,依赖库知识速学 aarch64 OpenMP AVX512 submodule apt upgrade 二,硬件基础知识速学 2.1,内存 2.2,CPU 三,ncnn 推理模型 3.1,shuf ...