这种情况看起来内容没变,但文件一定是被真正修改了。改变的点可能是换行符(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