我已经core.ignorecase=false在本地和全局级别进行了配置,但是当我这样做git checkout MASTER(不是主控)时,我看到了如下所示的奇怪行为。我也做了git branch -v,但没有显示主控。
git checkout master
Switched to branch 'master'
git branch
* master
git checkout MASTER
Switched to branch 'MASTER'
git branch
master
Run Code Online (Sandbox Code Playgroud)
我们可以看到 上现在没有 (*) 了master。
我知道 Mac OS X 文件系统不区分大小写,但是
core.ignorecase=falsea)即使在我们的操作系统控制它之后,明确提及它还有什么意义 ?
b) 如果 git 假设 MASTER 和 master 相同,为什么 master 分支上没有 (*) ?[编辑:即使你设置 core.ignorecase = true ,我们仍然会看到这个]
执行 rev-parse ,两者都指向相同的 SHA1。
通过设置,core.ignorecase=false您的系统配置错误true,如果您希望 Git 表现合理,则应该将其设置为正确的值。来自git-config手册:
\n\n内部变量,支持各种解决方法,使 Git 能够在不区分大小写的文件系统上更好地工作,例如 APFS、HFS+、FAT、NTFS 等。例如,如果目录列表在 Git 需要“Makefile”时找到“makefile”,则 Git会假设它确实是同一个文件,并继续将其记住为“Makefile”。
\n\xe2\x80\xa6
\nGit 依赖于您的操作系统和文件系统对此变量的正确配置。修改此值可能会导致意外行为。
\n
正确的值true在 macOS 上,除非您专门将磁盘或分区格式化为区分大小写。所以你永远不应该改变这个值,除非 Git 选择的值不正确。例如,如果将存储库从不区分大小写的卷复制到区分大小写的卷,则该值将不正确,因为 Git 在使用git clone或创建存储库后不会探测该值git init。
I\xe2\x80\x99m 不确定您希望通过将此变量设置为 来实现什么false,但实际发生的唯一事情是 Git 无法正常工作。
请注意,根据我的测试,如果您指定大小写错误的分支,Git 将无法在不区分大小写的文件系统上获得正确的分支名称。如果您愿意,您可以将其称为 Git 中的错误,但从经验来看,在不区分大小写的文件系统上获得良好的行为可能很困难。
\n| 归档时间: |
|
| 查看次数: |
5181 次 |
| 最近记录: |