Mac系统中git出现异常的未提交修改文件

问题说明

最近在搭建webrtc相关的内容的时候,将资源拉到本地后发现,有未提交的修改。现象是执行同步命令的时候提示有未提交修改而报错。

$ gclient sync
Syncing projects:  96% (29/30) src/third_party/errorprone/lib

src/third_party/android_ndk (ERROR)
----------------------------------------
[0:00:04] Started.
----------------------------------------
Error: 16>
16> ____ src/third_party/android_ndk at 635bc380968a76f6948fee65f80a0b28db53ae81
16>     You have unstaged changes.
16>     Please commit, stash, or reset.

去到对应的目录中执行git status之后,发现是这样一些文件有修改:

$ git status
HEAD detached at 635bc380
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   sysroot/usr/include/linux/netfilter/xt_connmark.h
    modified:   sysroot/usr/include/linux/netfilter/xt_dscp.h
    modified:   sysroot/usr/include/linux/netfilter/xt_mark.h
    modified:   sysroot/usr/include/linux/netfilter/xt_rateest.h
    modified:   sysroot/usr/include/linux/netfilter/xt_tcpmss.h
    modified:   sysroot/usr/include/linux/netfilter_ipv4/ipt_ecn.h
    modified:   sysroot/usr/include/linux/netfilter_ipv4/ipt_ttl.h
    modified:   sysroot/usr/include/linux/netfilter_ipv6/ip6t_hl.h

no changes added to commit (use "git add" and/or "git commit -a")

这些文件理论上刚刚从远端拉回来,不应该被修改过,就很奇怪。

问题原因

经过查询,大概问题的原因在于,MacOS使用的apfs文件系统是大小写不敏感的。而Linux的文件系统hfs是大小写敏感的。

在这个文件夹中不仅存在了大写名字的这些文件,也同时存在了对应的小写名字的对应的文件。所以apfs无法将这两个文件区分开来,导致了这种问题。

其实MacOS也可以使用大小写敏感的文件系统,但是就需要在创建磁盘镜像的时候特殊设置一下。如参考资料3中所述方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容