现象
有时git status 发现很多文件被修改了,但git diff 执行显示文件内容没变化,而是有 old mode xxx new mode。了。
git diff
diff --git a/Android.mk b/Android.mkold
mode 100644
new mode 100755
原因
文件的权限,被chmod变化了,这种变化也被 diff 识别出来
不同场景的解决方法
- 让当前git库忽略掉文件权限检查
git config core.fileMode false
- 针对repo库可用如下命令解决
repo forall -c git config core.fileMode false
- 当前user全局设置忽略文件权限检查,可查看文件~/.gitconfig
git config --global core.fileMode false // 所有版本库
$ cat ~/.gitconfig
[user]
name = huping
email = huping@soundai.com
[http]
postBuffer = 524288000
[core]
compression = -1
fileMode = false
[color]
ui = auto