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(默认值)。

  • 相关阅读:
    97. Interleaving String
    96. Unique Binary Search Trees
    95. Unique Binary Search Trees II
    94. Binary Tree Inorder Traversal
    odoo many2many字段 指定打开的form视图
    docker sentry 配置文件位置
    postgres 计算时差
    postgres 字符操作补位,字符切割
    postgres判断字符串是否为时间,数字
    odoo fields_view_get
  • 原文地址:https://www.cnblogs.com/littlehb/p/7838316.html
Copyright © 2011-2022 走看看