zoukankan      html  css  js  c++  java
  • git在window与linux的换行符问题

    1:背景。我win7,后端是win10,使用了TortoiseGit工具。我使用ssh,他使用http。仓库是在linux,使用gitLab管理

    2:问题。仓库是总监之前建好的。后端把文件add后push,我clone本地后没有放进编辑器中也没有做任何的修改,马上commit,提示所有文件已修改,打开对比了,只是结尾的换行有修改

    3:差异。因为之前没有遇到过这样的问题,不知从何下手,刚开始以为是编码问题,百度谷歌后不知所以然,就从编码到git版本用排除法一一对比,最后发现我们2个人的连接方式不一致。统一了链接方式后,问题不存在了,但是这不是解决问题的根本性办法,一开始以为是这个问题导致的,其实并不是,只是瞎猫碰上死耗子,其实是其中一个终端重新安装了git使用了一样的autocrlf

    4:总结。这个问题是git在window与linux的换行符问题,autocrlf在window和linux下不一样。假如不同的终端提交时候使用了不同的换行符,就会出现这个问题

    5:解决。

      a、安装时候,大家的选项大多是默认安装,所以在autocrlf选项时候,一般也是默认的。

      

      但是,在多人协同开发时候,不同终端不同git的配置不一样,会导致2的问题

      

      安装时候可以选择这个,checkout不修改文件换行符,commit不修改文件换行符  

      b、假如已经出现2问题。

        如果你的源文件中是换行符是LF,而autocrlf=true, 此时git add就会遇到 fatal: LF would be replaced by CRLF 的错误。有两个解决办法:

        1. 将你的源文件中的LF转为CRLF即可【推荐】

        2. 将autocrlf 设置为 false

        如果你的源文件中是换行符是CRLF,而autocrlf=input,  此时git add也会遇到 fatal: CRLF would be replaced by LF 的错误。有两个解决办法:

        1. 将你源文件中的CRLF转为LF【推荐】

        2. 将autocrlf 设置为true 或者 false

        在Mac上设置 autocrlf = input, 在Windows上设置autocrlf = true(默认值)。

  • 相关阅读:
    (15)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第三部分(完)
    (14)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第二部分
    (13)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第一部分
    (12)瓦片地图
    (11)粒子系统
    (10)场景转换(Transitions)
    (9)SpriteFrameCache和TextureCache
    LeetCode:数组中的第K个最大元素【215】
    LeetCode:累加数【306】
    LeetCode:组合总数III【216】
  • 原文地址:https://www.cnblogs.com/xbcq/p/5884463.html
Copyright © 2011-2022 走看看