即使文件内容看起来没有任何不同,Git 仍可能将文件标记为已修改,可能的原因包括:
Windows 使用 CRLF (\r\n) 作为换行符,而 Unix/Linux 使用 LF (\n)。如果文件的换行符发生了变化,Git 会将其视为修改。
git config core.autocrlf
git config core.autocrlf truegit config core.autocrlf input文件末尾是否有空行,或者空行的数量发生了变化,也可能导致 Git 标记为已修改。
文件的编码(如 UTF-8 和 UTF-16)发生变化,也会被 Git 识别为修改。
在某些情况下,文件权限的变化(如可执行位)也可能导致 Git 标记为已修改。
文件中可能存在不可见的字符(如 BOM,Byte Order Mark),这些字符的添加或移除会被 Git 视为修改。
git diff 查看具体差异。运行以下命令查看文件的具体差异:
git diff