解决没有修改文件但Git认为你修改了

这种情况看起来内容没变,但文件一定是被真正修改了。改变的点可能是换行符(LF ⇄ CRLF,也可能是文件权限。

如果是文件权限,设置忽略文件权限即可:

❯ git config core.filemode false

我出现这个问题的原因是用exFAT格式的U盘在两台ext4格式的电脑之间拷项目。这两种格式一个为Windows设计一个为Linux设计,权限管理自然也不一样。因此权限在ext4上本来是-rw-r--r--,过了一遍exFAT就成了-rwxrwxrwx。所以Git认为文件变了,但编辑器就是没法高亮哪里变了。

其实Git自身是可以告诉你文件权限被改变的:

❯ git diff README.md
diff --git a/README.md b/README.md
old mode 100644
new mode 100755