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,false和input,它们分别表示:

1 // 提交时转换为LF,检出时转换为CRLF
2 git config --global core.autocrlf true
3
4 // 提交时转换为LF,检出时不转换
5 git config --global core.autocrlf input
6
7 // 提交检出均不转换
8 git config --global core.autocrlf false

使用上述的最后一条命令,将core.autocrlf配置为false,即不开启自动转换功能。之后重新clone,本地仓库中的Shell脚本中不再出现CR。检查我的Git配置,发现core.autocrlf被配置为了true。这样,在从远端clone仓库时,Shell脚本中的LF就被替换成了CRLF。

时间: 2024-08-04 12:13:28

Git中的core.autocrlf选项的相关文章

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

格式化 格式化是许多开发人员在协作时,特别是在跨平台情况下,遇到的令人头疼的细小问题. 由于编辑器的不同或者Windows程序员在跨平台项目中的文件行尾加入了回车换行符, 一些细微的空格变化会不经意地进入大家合作的工作或提交的补丁中.不用怕,Git的一些配置选项会帮助你解决这些问题. core.autocrlf 假如你正在Windows上写程序,又或者你正在和其他人合作,他们在Windows上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾 结束符问题. 这是因为Windows使用回车和

Git中的AutoCRLF与SafeCRLF换行符问题

最近在使用GitHub,发现不时没有修改过的文件要提交,对比发现文件全部修改,但找不到不一样的地方.想可能是换行符的问题,因为Windows和Linux的换行符不一样,而Git默认应该是Linux的,今天Bing了下,果然是这个问题. CR回车 LF换行Windows/Dos CRLF \r\n Linux/Unix LF \n MacOS CR \r 解决方法是:打开命令行,进行设置,如果你是在Windows下开发,建议设置autocrlf为true.2014/08/20 补充:如果你文件编码

git中配置autocrlf来正确处理crlf

在使用git的过程中,如果我们的项目是跨平台开发的 那么CRLF的处理也许会成为一个很头疼的事情,有可能会出以下的莫名其妙的问题: 我们的某个开发人员在linux上提交的一个文件, 当从windows上pull下来后,没做任何的修改,查看其status,它的状态已经是modifed了 即使你使用git checkout -f来恢复改文件,它的状态仍然是modified,真是郁闷… 后来,才发现就是CRLF惹的祸. 我们都知道,在Windows上是CRLF来作为一行的结束符,而Linux上则是LF

git 中关于LF 和 CRLF 的问题

git 中关于LF 和 CRLF 的转换问题注意: Windows下编辑器设置中,建议调整设置为Unix风格.(具体设置位置各种编辑器上不同,需要找找) 使用Git Bash进行命令行操作时,运行一下这个命令检查一下输出结果,确认输出为false: $ git config --get core.autocrlf false 如果不是false,请修改为false $ git config --global core.autocrlf false 最好在.gitconfig文件设置好.详情可见:

Git中CRLF与LF的转换

1.换行符在不同的操作系统上的表示 首先要理解的一点是,对于不同的操作系统,对于换行符的表示是不一样的.也就是说当我们在编辑一个文件,在键盘上按下回车键的时候,对于不同的操作系统保存到文件中的换行符是不一样的.见下表: CR:表示回车\r LF:表示换行\n CRLF:表示回车换行\r\n 敲下回车键,不同的操作系统保存到文件中的值: Windows:使用的是CRLF ==> 即\r\n,文件中保存的是\r\n Linux/Unix: 使用的是LF ==> 即\n,文件中保存的是\n Mac

关于Git中的一些常用的命令

深入了解git的checkout命令 检出命令(git checkout)是Git最常用的命令之一,同时也是一个很危险的命令. 因为这条命令会重写工作区.检出命令的用法如下: 用法一: git checkout [-q] [<commit>] [--] <path>... 用法二: git checkout [<branch>] 用法三: git checkout [-m] [[-b|--orphan] <new_branch>] [<start_po

Git 系列(四):在 Git 中进行版本回退

在这篇文章中,你将学到如何查看项目中的历史版本,如何进行版本回退,以及如何创建 Git 分支以便你可以大胆尝试而不会出现问题. 在你的 Git 项目的历史中,你的位置就像是摇滚专辑中的一个片段,由一个被称为 HEAD 的 标记来确定(如磁带录音机或录音播放器的播放头).要在你的 Git 时间线上前后移动 HEAD ,需要使用 git checkout 命令. git checkout 命令的使用方式有两种.最常见的用途是从一个以前的提交中恢复文件,你也可以整个倒回磁带,切换到另一个分支. 恢复一

Eclipse RCP 中创建自定义首选项,并能读取首选项中的值

Eclipse RCP的插件中若想自己定义首选项需要扩展扩展点: org.eclipse.core.runtime.preferences //该扩展点用于初始化首选项中的值 org.eclipse.ui.preferencePages//该扩展点用于定义自己的首选项页面 plugin.xml中内容如: Database Preferences挂在WorkFlowBase下,需要在category中填写workFlowBase的ID WorkFlowPreferenceInitializer类,

git中忽略文件权限或文件拥有者的改变

在发布项目到线上时,很多时候需要修改文件的权限,如果是使用git版本管理软件来发布的话,那么下次更新线上文件的时候就会提示文件冲突.明明文件没有修改,为什么会冲突呢?原来git把文件权限也算作文件差异的一部分.下面笔者自己做了个简单的例子来演示这种情况. 1.修改版本库的文件的权限,然后使用diff查看下改变. $ chmod 777 pack.php $ git diff pack.php git文件权限修改示例 可以看到git把文件权限也列入了版本管理. 2.在另外一个地方clone这个版本