[TOC]

概述

错误一:fatal: .git/index: index file smaller than expected

git的索引文件损坏了,删除对应的索引文件重建即可

1
2
rm -rf .git/index
git reset HEAD .

错误二:git文件内容没变但status显示不同

虽然文件内容并没有改变,但git status显示目录下所有文件都被标识有更改

用git diff filename命令查看不同,结果若下图:

1
2
3
4
(py36) baiduiov@FreweniUbuntuBaidu:/media/baiduiov/FrewenWang/02.ProjectSpace/01WorkSpace/em$ git diff version.json
diff --git a/version.json b/version.json
old mode 100644
new mode 100755

这里提示的不同,是文件的权限改变了。

SO,解决方案奏是:不让git检测文件权限的区别

1
git config core.filemode false

又遇到一个问题,git merge后发现竟然修改了所有(一千多个)文件。。然而文件的不同只是酱紫的,

问题倒简单,windows和unix换行符不同的问题,关键是解决方案,dos2unix命令(需要自己安装),批量执行:

1
find . -type f -exec dos2unix {} \;
1
2
3
4
5
6
7
8
9
10
其中具体命令的解释如下:

find .
= find files in the current directory(当前文件夹下查找)

-type f
= of type f(查找类型是文件)

-exec dos2unix {} \;
= and execute dos2unix on each file found(执行dos2unix命令)