问题
在命令行执行git add *
的时候,提示Warning
:
通常情况下是在 Windows环境中才会遇到。
原因
-
Uinx/Linux采用换行符LF表示下一行(LF:LineFeed,中文意思是换行),即:
\n
; -
Dos和Windows采用回车+换行CRLF表示下一行(CRLF:CarriageReturn LineFeed,中文意思是回车换行),即:
\r\n
; -
Mac OS采用回车CR表示下一行(CR:CarriageReturn,中文意思是回车),即:
\r
。
解决
在Git中,可以通过以下命令来显示当前你的Git中采取哪种对待换行符的方式:
git config core.autocrlf
此命令会有三个输出,“true”,“false”或者“input”
-
为true时,Git会将你add的所有文件结尾的CRLF转换为LF,而拉到本地时会再将文件的LF格式转为CRLF格式。
-
为false时,不做任何改变,文本文件保持其原来的样子。
-
为input时,add时Git会把CRLF转换为LF,而check时仍旧为LF,所以Windows操作系统不建议设置此值。
设置
git config --global core.autocrlf true
,适用于Windows系统,且一般为Windows默认设置。git config --global core.autocrlf input
,适用于Linux系统git config --global core.autocrlf false
,适用于Windows系统,且只在Windows上开发的情况。( 嫌警告烦可以设置此选项 )
其他
文件提交时进行safecrlf检查
#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
#允许提交包含混合换行符的文件
git config --global core.safecrlf false
#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn
Linux中查看换行符
cat -A
命令就可以查看文件换行符了,或者vim也可以。
Windows换行符转换为Linux格式
- 使用命令"dos2unix",没有可以用yum安装
- vim 打开
set ff=unix
则可以将Windows 换行符转换为Linux换行符。(ff的全称为file encoding)