图 2-2
4.如今把 旧的git托管的代码 复制到 新的git托管代码上去,就发现 changes的数目是正确的了。
5.又试了,vscode 显示 500+变更时,git diff --stat 看到现实修改的文件:控制台输出告诫
warning: LF will be replaced by CRLF in apps/mems-web/src/assets/css/fonts.scss.
The file will have its original line endings in your working directory。
网上搜索到是由于 不同平台的换行符不一致导致的,windows:crlf, ma,linux:lf
设置了 core.autocrlf=false,题目解决了。
综述所述,上述题目可以实验以下两种方式解决: 方式一: 实验步骤3,4,旧代码和新代码都利用 git仓库托管的。 方式二:git diff --stat 查看现实被修改的文件,假如有 LF will be replaced by CRLF的告诫,设置 core.autocrlf=false :任意终端内里实验命令 git config --global core.autocrlf false即可
6.git clone的文件和 git download的文件大小为什么不一样?
根据 warning: F will be replaced by CRLF以及上面的题目,猜测:git托管的文件在windows上都自动转成了 CRLF(\r\n), git download下来的文件以 LF(\n) 结尾,git download的文件字符较少,所以文件小一些;直接把git download下来的文件 复制到 git项目内里,文件以 LF结尾,和git 托管的文件结尾方式不一致,所以 会出如今changes内里。当设置autocrlf=false后,忽略了结尾符号的不同,所以不会出如今changes内里了。
验证:git Bash内里可以查看到两个文件的换行结尾确实不同,如图 2-3 所示
git clone的文件以 CRLF结尾;git download的文件以 LF结尾