kebeibei

导航

git为何提示LF will be replaced by CRLF

 以下内容摘自CSDN 作者ljheee

 CR为回车符,LF为换行符。Windows结束一行用CRLF,Mac和Linux用LF。
文本文件所使用的换行符,在不同的系统平台上是不一样的。

 Git 在设计时就考虑了这一点,其提供了一个 autocrlf的配置项,用于在提交和检出时自动转换换行符,该配置有三个可选项:

  1. true: 提交时转换为 LF,检出时转换为 CRLF
  2. false: 提交检出均不转换
  3. input: 提交时转换为LF,检出时不转换

 初次遇到这个问题,当然网上也有最简单的解决方式
git config --global core.autocrlf false #提交和检出代码都不转化
不转化意味着,你使用的目标平台有一套换行方式,引入的别人的代码一套方式,这两种方式混合并存且不转化,那以后这份代码在任何平台上检出/提交 都会有问题,因为它的换行方式总是一部分和使用的平台相符,一部分不相符。

 因此不推荐使用这种方式,除非你这次提交的东西,以后几乎不会用到/改动,只用于以后浏览。

 要是以后会用到,如何处理才好呢?

 一句话,还是和具体使用的平台相关。

false表示取消自动转换功能。适合纯Windows
true表示提交代码时把CRLF转换成LF,签出时LF转换成CRLF。适合多平台协作
input表示提交时把CRLF转换成LF,检出时不转换。适合纯Linux或Mac

 1、如果这些代码,只在一种平台上使用,跟具体平台相关,那只需要把你引入的 别人代码的换行方式,换成你使用平台的方式即可。转化后,在以后提交和检出代码都不会出问题。

 2、如果跨平台协作,
例如:A使用Mac/Linux,B使用Windows;

 现在B获取A的代码,B需要在自己的机器上设置 git config --global core.autocrlf true。
B检出代码时,转化成自己Windows方式的CRLF,提交时转化为LF,和A保持一致。

 还有,最好不要设置safecrlf为false,即允许两种方式并存。

posted on 2023-07-27 11:09  蹉跎岁月1997  阅读(126)  评论(0)    收藏  举报