git core.autocrlf配置 解决Windows和Linux(Mac)换行问题

格式化

格式化是许多开发人员在协作时,特别是在跨平台情况下,遇到的令人头疼的细小问题。 由于编辑器的不同或者Windows程序员在跨平台项目中的文件行尾加入了回车换行符, 一些细微的空格变化会不经意地进入大家合作的工作或提交的补丁中。不用怕,Git的一些配置选项会帮助你解决这些问题。

core.autocrlf

假如你正在Windows上写程序,又或者你正在和其他人合作,他们在Windows上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾 结束符问题。 这是因为Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。 虽然这是小问题,但它会极大地扰乱跨平台协作。

Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能, 如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF:

$ git config --global core.autocrlf true

Linux或Mac系统使用LF作为行结束符,因此你不想Git在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正, 把core.autocrlf设置成input来告诉Git在提交时把CRLF转换成LF,签出时不转换:

$ git config --global core.autocrlf input

这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。

如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中:

$ git config --global core.autocrlf false

转自 http://www.qinbin.me/git-core-autocrlf%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E/

原文地址:https://www.cnblogs.com/ZY-Dream/p/9955083.html

时间: 2024-10-09 13:30:44

git core.autocrlf配置 解决Windows和Linux(Mac)换行问题的相关文章

windows和linux中换行符的转换

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

解决Windows和Linux双系统时间不同步问题

装了Windows和Linux的双系统后登陆Windows发现时间早了8小时. 原理其他博客都讲了,为了以后方便查找,写下解决方案: 管理员身份运行CMD,输入命令 Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 原文地址:https://www.cnblogs.com/RFisher/p/9226707.html

集群之mysql主从配置(windows和linux版)

起因 由于网站进一步开发运行的需求,要求主机7*24小时运行正常,同时要求能够防止数据库灾难.考虑到后期的开发程度和业务量,准备向高可用系统进行改变,同时通过负载均衡提高网络性能.于是第一步就考虑到了数据库的集群问题. 集群和数据库主从复制 集群 通过多个物理机服务器共同处理和完成同一个业务功能,能很好的提高网站性能和可靠性.不同的环境下需要采用不同的集群策略,集群主要分为以下几种: (1)高可用集群:节点间以主备形式实现数据库容灾,在宕机情况下能快速恢复,节点间共享资源. (2)负载均衡集群:

docker 配置国内镜像源 linux/mac/windows

部分内容来自:http://guide.daocloud.io/dcs/daocloud-9153151.html 加速器官方DaoCloud承诺:加速器服务永久免费且无流量限制 使用前提:注册DaoCloud账号 并 确保Docker 版本 > 1.8 命令docker --version 使用 Docker 需要经常从官方获取镜像,国内拉取镜像的过程非常耗时. DaoCloud 推出DaoCloud 加速器 ,通过智能路由和缓存机制,极大提升了国内网络访问 Docker Hub 的速度,并得

【转】Gvim配置(Windows and Linux)for C++|gvim编译运行c/c++程序

转载地址:http://blog.csdn.net/onepiecehuiyu/article/details/8934366 http://mawenhao19930620.blog.163.com/blog/static/12857536120112991818242/ Windows下gvim配置文件_vimrc 首先配置g++到环境变量(配置g++,具体是将devc++的g++.exe的路径比如说:c:/deVC++/bin..加入到环境变量path里面) , 然后将下面的代码复制并保存

解决Windows传入Linux中的文件乱码

需要iconv工具: yum install glibc*   (安装工具) 例如:iconv -f gb2312 ceshi.txt -o cheshinew.txt 将原文件ceshi.txt以编码gb2312输出到新文件ceshinew.txt. iconv -l  列出所有的字符集.

Git中的core.autocrlf选项

项目的开发环境为Windows,在Linux环境下编译,使用Git进行版本控制. 在安装好Git和TortoiseGit后,从远端clone,遇到一个奇怪的问题,Shell脚本中的LF总是被替换成了CRLF,最后发现是在Git的安装过程中有一项没有被配置好. 在Windows下,由回车CR(0x0D)和换行LF(0x0A)共同标志一行的结束. 而在Linux和Mac环境下,每一行的结束仅有一个换行LF(0x0A). 在Git中有一项core.autocflf配置项,它可以被配置为true,fal

jenkins使用Git为源码管理(windows master && linux slave)

作为一个不太经常总结的人,工作以来碰到过太多问题!往往解决之后没有有效记录,导致再次碰到需要重新查资料解决.现在改变下习惯,努力搞的了技术. 公司最近提倡开源(以前啥都机密,即使开源也没改变多少),代码从SVN迁移至Git管理,这样导致原来记录项目日志的wiki持续集成job需要重新配置.之前的设置为:每分钟检查SVN变化,有变化就执行编译发布.改为Git后,碰到坑坑洼洼,一并列在下面. jenkins的Git插件安装 git plugin,git client plugin,github pl

.Net Core 跨平台:一个简单程序的多平台(windows、Linux、osx)发布

.Net Core 跨平台:一个简单程序的多平台(windows.Linux.osx)发布 .Net Core 3.0 已于2019年9月23日发布了,包含了一些新特性,具体参见Announcing .NET Core 3.0 .NET Core是一个跨平台,高性能,开放源代码框架,用于构建现代的,基于云的,Internet连接的应用程序框架,其具有一下优点和特点: 跨平台:.NET Framework应用程序仅在Windows平台上运行,而.NET Core应用程序可以在Windows平台上开