在使用 perl 代码库(在分支 maint-5.004 上)时,我观察到以下行为:
bash-3.2$ git 状态 | grep 修改 #修改:配置 bash-3.2$ git reset --hard HEAD 现在是 9a4fb7e 副本超过 bleads .gitignore bash-3.2$ git 状态 | grep 修改 #修改:配置 bash-3.2$ git reset --hard HEAD 现在是 9a4fb7e 副本超过 bleads .gitignore bash-3.2$ git 状态 | grep 修改 #修改:配置
发生这种情况是因为这两个文件共享一个 inode(它们是同一个文件),但它们在 git 索引中是不同的。我的问题是:这是怎么发生的?如果 git 跟踪到同一个文件的 2 个链接,当只有其中一个被修改时,是否应该期望 git 将其标记为错误?这是 git 错误还是用户错误?
更新:
看来问题不在于 git,而与文件系统(hfs+)的区分大小写有关。
$ mkdir tmp $ cd 时间 $ touch foo $ ls -i foo Foo 10301082 富 10301082 富
我认为也许 OS X 需要重新考虑作为一个有用的开发平台,因为这种行为是荒谬的。