github 换行符自动转换功能

最近想把自己的一个Qt工程同步到github上,但是当自己把代码从仓库中签出来的时候编译的时候总是出现一些很奇葩的错误,一开始以为是源文件编码的问题,改了编码以后问题还是没有解决,我比较了一下两个工程中的文件,真是一比吓一跳啊

windows换行是\r\n,十六进制数值是:0D0A。
LINUX换行是\n,十六进制数值是:0A

Git 由大名鼎鼎的 Linus 开发,最初只可运行于 *nix 系统,因此推荐只将 UNIX 风格的换行符保存入库。但它也考虑到跨平台协作的场景,并且提供了一个“换行符自动转换”功能。

这个功能默认处于“自动模式”,当你在签出文件时,它试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。如果你手头的这个文件是一个包含中文字符的 UTF-8 文件,那么这个“换行符自动转换”功能 在提交时是不工作的(但签出时的转换处理没有问题)

git config --global core.autocrlf false可以关闭github换行自动转换功能

或者改掉.gitconfig文件在[core]后面添加 autocrlf = false

问题解决了!又可以愉快的码代码了

时间: 2024-08-01 22:45:31

github 换行符自动转换功能的相关文章

GitHub 第一坑:换行符自动转换

源起 一直想在 GitHub 上发布项目.参与项目,但 Git 这货比较难学啊.买了一本<Git 权威指南>,翻了几页,妈呀,那叫一个复杂,又是 Cygwin 又是命令行的,吓得我不敢学了. 终于某天发现 GitHub 还有一个 Windows 客户端,试了一下还挺好用.不需要掌握太多的 Git 原理和命令,也可以在 GitHub 上麻溜建项目了,甚是欢喜.可是好景不长,第一次参与开源项目就出洋相了. 经过 小心翼翼地 Fork 了朴灵大大 (@JacksonTian) 的 EventProx

Git坑换行符自动转换 [转载]

转自https://www.cnblogs.com/zjoch/p/5400251.html 源起 一直想在 GitHub 上发布项目.参与项目,但 Git 这货比较难学啊.买了一本<Git 权威指南>,翻了几页,妈呀,那叫一个复杂,又是 Cygwin 又是命令行的,吓得我不敢学了. 终于某天发现 GitHub 还有一个 Windows 客户端,试了一下还挺好用.不需要掌握太多的 Git 原理和命令,也可以在 GitHub 上麻溜建项目了,甚是欢喜.可是好景不长,第一次参与开源项目就出洋相了.

windows和linux中换行符的转换

数据开发平台使用上传脚本报错:保存失败,文件编码格式不正确,请修改文件换行符为Unix终束符! 修改方式:DOS系统下,使用文本编译器另存为,然后选择换行符为unix终束符. 解释: windows 文件的换行符为:[CR][LF] Linux和Unix文件的换行符为:[LF] 有些需要转换使用,如修改或替换安卓andriod的hosts文件,需要保证换行符为Unix形式才能使用. 其中一种办法是在linux系统中重新保存一份文件: 但是:如何在windows系统中,转换成Unix / Linu

git crlf、lf自动转换引起的问题

??项目组最近加了一个新功能到代码中,使用flyway记录数据库版本变更,,,该工具会记录每次数据库结构的修改并生成sql文件存在指定目录上(当然必须用它来变更数据库,外部的变更它是无法感知的),然后每次启动时flyway会检查使用的数据库和当前项目代码中的sql变更版本是否一致,一致正常启动,不一致中如果是数据库落后将会更新数据库(这样能够保证代码在任何地方运行数据库都是一致的),否则就报错了.数据库中有一张表记录版本信息,如下图: 同时本地代码中也有一个文件夹保存每次操作的sql语句,如下图

菜鸟教程之工具使用(八)——EGit禁止自动转换回车换行符

众所周知,Windows和Linux系统的回车换行是不一样的.想要进一步了解它们的可以阅读下面的介绍,不感兴趣的可以直接跳过. 产生背景 关于"回车"(carriage return)和"换行"(line feed)这两个概念的来历和区别.在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符.要是在这0.2秒里面,又有新的字符传过

SQLLoader8(加载的数据中有换行符处理方法)

SQLLDR加载的数据中有换行符处理方法1.创建测试表: CREATE TABLE MANAGER( MGRNO NUMBER, MNAME VARCHAR2(30), JOB VARCHAR2(30), REMARK VARCHAR2(1000) ); 2.创建控制文件我们可以通过控制文件,在数据加载前处理remark列的数据,将用户指定的"\n"字符替换为chr(10),即标准换行符,创建控制文件如下: LOAD DATA INFILE 'D:\testSqlLoader\ldr_

git 自动转换行符的坑爹案例

本人写的脚本都是在unix上运行的,但是编写有时候喜欢使用Git拉去到windows的ide进行编写,毕竟我的unix只有命令行的没有ide, 殊不知有一天我的sh执行时出现错误 -bash: ./dailytask.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录 使用vim的命令:set ff?来查看文件格式发现已经是dos,修改格式为unix,命令如下:set ff=unix 接着再运行就好了 如果文件很多都修改成dos格式了,请示用dos2unix来进行

编码语系转换与换行符转换

1.编码语系转换 常见中文编码语系有gb2312.big5.utf8,有时出于某种目的,一个文件要在不同的编码语系间转换,用iconv命令即可. $ iconv -l -l列出支持的编码语系. $ iconv -f encoding -t encoding filename [-o file] -f表示原编码格式,-t表示目标编码格式,-o表示stdout到文件. 还有一个好用的命令file,可查看文件编码格式和换行符. $ file filename 2.换行符转换 Windows与Linux

Notepad++中设置Windows、Unix、Mac三种行尾换行符格式间的转换

(1)首先,要设置NotePad++能显示换行符,这个才能看到效果, 视图-->显示符号-->显示行尾符. {2}设置行尾符格式:编辑-->档案格式转换-->(可选Windows.Unix.Mac中的一种) 版权声明:本文为博主原创文章,未经博主允许不得转载.