• git在不同平台windows、linux、mac 上换行符的问题


    0.01 不同平台上换行符的问题

    1,不同平台对换行符的制定不同

    windows <回车换行> (carriage return AND line feed) “ ” CRLF

    Unix系统 <换行> (carriage return) “ ” CR

    window unix mac 等平台,换行符的不同:

     

    2,由于换行符的不同,在不同系统之间传递文件产生的问题

    1,文本显示问题,windows 下的文件在linux 下会产生 ^M 符号,而 linux 下创建编辑的文件 在windows 下会显示成一行;(edit plus 等软件可以很好区分除外)
    2,window 下写的shell脚本不能再linux下执行了(shell 解释器对用换行符作为一个命令的提交)
    3,影响版本控制软件呢的检入检出,(git对于工作空间和版本库中换行符有转换控制)产生一些无用的文件差异(git diff),尤其在多人协作中,每个人设置的换行符模式不同。
    3,有时产生莫名其妙的问题,如果找不到原因,应该怀疑下是不是换行符的问题;

    3,不同平台换行符的转化

    windows -> unix :
    1,用unix 平台的命令工具:

    1. cat a.txt | tr -d "^M" > b.txt
    2. cat a.txt | sed 's/^M//g'
    3. vim 中执行sed 命令替换 ( :^,$ s/^m//g ;or :s/
    //g; )
    4. dos2unix 文件 (适用与对文件夹所有文件进行转化)

    unix ->windows :
    在window 平台适用 UltraEdit 和 EditPlus 等工具的 可以设置换行模式进行自动转化

    或者在unix 平台中使用命令:

    1. cat a.txt | sed 's/
    /
    /g'
    2. unix2dos 文件 (适用与对文件夹所有文件进行转化)


    4,在开发方面如何避免换行问题

    1,ide 中像设置编码一样,强制在工程工作区间级别设置文件换行 为linux 风格(设置为linux 风格的主要原因是有利与使用git少出错,有洁癖的想法是 还能省 这一个字节的内容消耗,那个文件没有换行? 总体来看是个划算的做法:})
    eclipse 中,Windows -> Preference -> General -> workspace:

    idea 中 ,
    1,File->Settings…(Ctrl+Alt+S)
    2,Editor->Code Style 里面的Line separator(for new files): 选择Unix and OS X( )


    2,gitbash 中设置默认检入检出换行符为linux( )风格:(为了团队更好的协作)
    1,开启自动换行

         [a@b]$ git config --global core.autocrlf true
    
    #签出时将换行符转换成CRLF,签入时转换回 LF。  git config --global core.autocrlf true   
    #签出时不转换换行符,签入时转换回 LF            git config --global core.autocrlf input   
    #签出签入均不转换                               git config --global core.autocrlf false
    

    2,开启安全换行

        [a@b]$ git config --global core.safecrlf true
       解释:
       如果你把换行符搞乱了,在一个文件中既包含windows风格的换行符也包含unix风格换行符,那么 safecrlf 就可以发挥作用了:
    #拒绝提交包含混合换行符的文件     git config --global core.safecrlf true   
    #允许提交包含混合换行符的文件     git config --global core.safecrlf false   
    #提交包含混合换行符的文件时候给出警示 git config --global core.safecrlf warn
    



  • 相关阅读:
    企业生产经营相关英文及缩写之(9)称号/部门/公司
    企业生产经营相关英文及缩写之(2)生产/货仓
    企业生产经营相关英文及缩写之(6)BOM 通用缩写
    企业生产经营相关英文及缩写之(3)工程/工序(制程)
    企业生产经营相关英文及缩写之(11)Genenic 普通书写
    企业生产经营相关英文及缩写之(5)营业/采购
    企业生产经营相关英文及缩写之(7)Shipping 装运
    企业生产经营相关英文及缩写之(4)质量/体系
    软考总结
    IIS是如何处理ASP.NET请求的
  • 原文地址:https://www.cnblogs.com/linkenpark/p/10220286.html
Copyright © 2020-2023  润新知