warning: LF will be replaced by CRLF in

用gitee上瘾,今天翻电脑看到一个上古项目,还不是我写的,终于我也想起来自己是有github的人。我的上古学习笔记都在github,我就把这个项目跟他们传到一起,结果在我我git add -A之后报错了,本来我以为不用管,结果发现不处理这个就没办法上传。
warning: LF will be replaced by CRLF in_第1张图片
然后在stackoverflow找到了解决方法。

先说个简单的

只需要重新输入一遍git add -A之后就好使了呢( ´・ω・)ノ(._.),如果不好使你在往下看。

然后是第二种方法

上边重输入不好使的话就只能改config文件了。
首先你需要找到你的config文件,
gitconfig可能的地址:

  • git安装目录 git\etc\gitconfig
  • C:\Users\username
  • $XDG_CONFIG_HOME/git/config
  • $HOME/.config/git/config and

然后将autocrlf = false添加到gitconfig中保存即可。

注意: git config设置可以被gitattributes设置覆盖。


能解决的看到这里就可以啦,不能的话就去找找别的方法吧。

如果想知道原理,可以接着往下看。


符号

  • CR:Carriage Return,对应ASCII中转义字符\r,表示回车
  • LF:Linefeed,对应ASCII中转义字符\n,表示换行
  • CRLF:Carriage Return & Linefeed,\r\n,表示回车并换行

Windows操作系统采用两个字符来进行换行,即CRLF;
Unix/Linux/Mac OS X操作系统采用单个字符LF来进行换行;
MacIntosh操作系统(即早期的Mac操作系统)采用单个字符CR来进行换行。

原因是存在符号转义问题
“warning: LF will be replaced by CRLF”表示autocrlf=true,将在提交后丢失unix样式的LF(它将被windows样式的CRLF替换)。Git不希望在windows下使用unix风格的LF。

“warning: CRLF will be replaced by LF”表示autocrlf=input,将在提交后丢失windows样式的CRLF(它将被unix样式的LF替换)。不要在windows下使用input。

什么是autocrlf
输入命令$ git config core.autocrlf
可能会出现三个值:

  • true,意味着每次将文件添加到git认为是文本文件的git repo中时,它将所有CRLF行尾都变成LF,然后再将其存储在提交中。每当您git checkout某些内容时,所有文本文件都会自动将其LF行结尾转换为CRLF结尾。这允许跨平台开发使用不同行尾样式的项目,而不会造成很大的干扰,因为每个编辑者都会更改行尾样式,因为行尾样式始终是LF。
  • false时,不会执行行尾转换,因此将按原样检查文本文件。只要您所有的开发人员都在Linux上或全部在Windows上,这通常都可以。
  • input时,add时Git会把CRLF转换为LF,而check时仍旧为LF,Windows操作系统不建议使用。

对Windows用户来说

  • 如果也打算在Unix下使用该项目(并且不愿意将编辑器/ IDE配置为使用Unix行尾),请使用core.autocrlf = true,
  • 如果打算仅在Windows下使用此项目(或已将编辑器/ IDE配置为使用Unix行尾),请使用core.autocrlf = false,
  • 除非有充分的理由(例如,如果在Windows下使用Unix实用程序或遇到makefile问题),请不要使用core.autocrlf = input

我是安安,程序媛什么的拉倒吧

你可能感兴趣的:(Git)