博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于git CRLF LF结尾的问题
阅读量:4699 次
发布时间:2019-06-09

本文共 744 字,大约阅读时间需要 2 分钟。

在使用git的过程中,如果我们的项目是跨平台开发的 那么CRLF的处理也许会成为一个很头疼的事情,有可能会出以下的莫名其妙的问题:

我们的某个开发人员在linux上提交的一个文件

当从windows上pull下来后,没做任何的修改,查看其status,它的状态已经是modifed了

即使你使用git checkout -f来恢复改文件,它的状态仍然是modified,

真是郁闷… 后来,才发现就是CRLF惹的祸

我们都知道,在Windows上是CRLF来作为一行的结束符,而Linux上则是LF作为行结束符

在git中提供了autocrlf的设置,可以用来自动转换CRLF,它可以设置成true,false,input

Windows上的msysgit默认设置了autocrlf为true 这样,在提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF 这样保证了从windows平台上提交的代码,都是以LF作为行结束符

在linux平台上,git默认设置autocrlf为false,也即它不会自动处理CRLF 这样就有一个问题,如果我们把windows上的一个文件给上传到linux上,并提交

那么,提交到仓库中的代码就会以CRLF来换行了, 这样就会导致我们在windows上查看改文件的状态就会是modified 解决这个问题有以下2个办法:

  1. 在Linux上设置autocrlf为input,这样,Git在提交时把CRLF转换成LF,签出时不转换
  2. 对于从Windows上直接拷到Linux上的文件,首先把它转换成linux格式后,再进行提交

转载于:https://www.cnblogs.com/huangye-dream/p/4800150.html

你可能感兴趣的文章
CC++中sizeof函数的用法
查看>>
SPFA 算法详解( 强大图解,不会都难!) (转)
查看>>
QUIC:基于udp的传输新技术
查看>>
java常见面试题及部分答案
查看>>
动态添加方法的代码分析
查看>>
thinkPHP5.0使用模型新增数据
查看>>
客户端第一天学习的相关知识
查看>>
LeetCode - Same Tree
查看>>
Python dict get items pop update
查看>>
[置顶] 程序员必知(二):位图(bitmap)
查看>>
130242014036-(2)-体验敏捷开发
查看>>
constexpr
查看>>
Nginx 流量和连接数限制
查看>>
课堂作业1
查看>>
IE8/9 本地预览上传图片
查看>>
Summary of CRM 2011 plug-in
查看>>
Eclipse+Maven环境下java.lang.OutOfMemoryError: PermGen space及其解决方法
查看>>
安全漏洞之Java
查看>>
Oracle 组函数count()
查看>>
Session的使用过程中应注意的一个小问题
查看>>