zoukankan      html  css  js  c++  java
  • git中配置autocrlf来正确处理crlf

    在使用git的过程中,如果我们的项目是跨平台开发的

    那么CRLF的处理也许会成为一个很头疼的事情,有可能会出以下的莫名其妙的问题:

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

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

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

    后来,才发现就是CRLF惹的祸。

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

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

    • windows上的设置:

      Windows上的msysgit默认设置了autocrlf为true

      这样,在提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF

      这样保证了从windows平台上提交的代码,都是以LF作为行结束符

    • linux上的设置:

      在linux平台上,git默认设置autocrlf为false,也即它不会自动处理CRLF

      这样就有一个问题,如果我们把windows上的一个文件给上传到linux上,并提交

      那么,提交到仓库中的代码就会以CRLF来换行了,

      这样就会导致我们在windows上查看改文件的状态就会是modified

      解决这个问题有以下2个办法:

      1. 在Linux上设置autocrlf为input,这样,Git在提交时把CRLF转换成LF,签出时不转换
      2. 对于从Windows上直接拷到Linux上的文件,首先把它转换成linux格式后,再进行提交
  • 相关阅读:
    python直接赋值、浅拷贝与深拷贝的区别解析
    join shuffle
    Python工作流-Airflow
    【JAVA基础语法】(一)Arrays.asList的使用
    Java中的数组和List
    ArrayList和LinkedList区别
    Array和ArrayList区别
    iOS项目崩溃日志采集与分析
    iOS超全开源框架、项目和学习资料汇总
    iOS webView、WKWebView、AFNetworking 中的cookie存取
  • 原文地址:https://www.cnblogs.com/habibah-chang/p/3949588.html
Copyright © 2011-2022 走看看