zoukankan      html  css  js  c++  java
  • git 换行符问题

    最近在windows下使用Git,发现不时没有修改过的文件要提交,对比发现文件全部修改,但找不到不一样的地方,Baidu后怀疑是换行符的问题,因为Windows和Linux的换行符不一样,这个和git客户端配置有关系,如果每个人客户端配置不一样同样会出现该问题.

    关于不同系统的换行符问题:

    UNIX/Linux : 0x0A(LF), Mac OS:0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。

    DOS/Windows : 0x0D0A(CRLF)作为换行符。

    关于编码和换行符设置在安装“Git for windows”的时候,在“Configuing the line ending conversions”页面其实已经给出了提示

      

    说明里已经标的很清楚了:

    1.Checkout Windows-styl,commit Unix-style line endings

    签出时LF转为CRLF  core.autocrlf=true

    2.Checkout as-is ,commit-Unix-style line endings

    签出时不改变任何内容,提交时CRLF替换为LF core.autocrlf=input

    3.checkout as-is,commit as-is

    签出签入都不做任何转换保持原样 core.autocrlf=false

    指令设置

    1.修改git设置 core.autocrlf=input.检出时不转换,提交转换为lf,这样可以避免提交windows换行符的情况.如果是在当前仓库要求 把--global去掉即可。

    git config --global core.autocrlf  input
    

    2.拒绝提交包含混合换行符的文件

    git config --global core.safecrlf true
    

      

    TortoiseGit设置:

    由于使用的是VS比较无法看到换行符效果这里使用TortoiseGit进行比较,在比较窗口的右下角可以看到编码 换行格式等信息 

    测试环境WIN10+VS2013+TFS2015+GIT 2.10.1

    在VS2015中设置后依然无法提交的问题,直接全部不检测不转换(只在windows单平台的时候可以这样操作哦)

    git config --global core.autocrlf false
    git config --global core.safecrlf false

    原文参考:

     git官方说明

    github

    Git中的AutoCRLF与SafeCRLF换行符问题

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

  • 相关阅读:
    10分钟入门spark
    10分钟入门kubernetes(上)
    深入浅出Hadoop之mapreduce
    深入浅出Hadoop之HDFS
    闲聊cassandra
    深入浅出zookeeper
    Asp.net日期字符串格式化显示
    C#里面比较时间大小三种方法
    (ASP.net)利用Application对象制作简单聊天室
    Response.ContentType 详细列表
  • 原文地址:https://www.cnblogs.com/merray/p/6288611.html
Copyright © 2011-2022 走看看