解决没有修改文件但 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


如无特殊声明,本页内容采用 CC BY-NC 4.0 授权