已配置.gitignore为何Library、Logs文件夹仍在GitHub Desktop显示变更
未手动修改文件却出现Git变更提示的常见原因
- 行尾符自动转换导致的差异
Windows与macOS/Linux的默认文件行尾符不同(Windows为CRLF,类Unix系统为LF),若Git开启了core.autocrlf配置,会自动对拉取/提交的文件做行尾符转换,导致本地文件与仓库存储版本出现内容差异,即使你没有手动编辑过文件。 - 已追踪文件被加入
.gitignore不生效.gitignore仅能过滤从未被Git追踪过的文件。如果某类文件此前已经被提交到仓库,后续才将对应路径加入.gitignore,已经被追踪的文件的变更依然会被Git检测到。你可以执行git rm --cached <文件路径>将对应文件从Git追踪列表中移除,后续这类文件的变更就会被.gitignore正常过滤。 - 文件权限变更被识别
Git默认会检测文件的可执行权限位变动,如果项目文件的读写执行权限发生了变化,哪怕内容完全没有改动,Git也会判定为存在变更。你可以在本地仓库根目录执行git config core.fileMode false关闭权限检测,屏蔽这类变更提示。 - 文件名大小写不一致
Windows等系统对文件名大小写不敏感,若本地文件名大小写与仓库中存储的版本不一致,或是仓库中存在大小写不同的同名文件,Git也会识别为文件存在变更。
内容的提问来源于stack exchange,提问作者Castollo
相关产品推荐
相关产品推荐

