我是git的新手并且遇到了令人困惑的情况。
总之,我无法理解与分支名称相关的区分大小写的工作原理。例如,我在主分支上并使用命令git checkout -b AP-1025
创建一个名为AP-1025的新分支,现在我可以执行git branch
并且我看到我在AP-1025上,因为它有一个明星旁边。
现在让我说我在AP-1025上进行一些更改,提交它们,然后使用git checkout master
切换回主控。我回到主人身上,一切都很好,但如果我现在做git checkout ap-1025
(注意小写字符,没有-b,意味着新分支不创建)。它告诉我我已经切换到ap-1025,但是这次当我执行git branch
时,AP-1025 不旁边有一个星号,并且没有出现分支旁边的一颗星。
我的困惑是因为git允许我执行git checkout ap-1025
而不抱怨缺少分支,所以我假设分支名称不区分大小写。但是git branch
并不表示我真的在AP-1025分支上,这表明分支命名/命令的某些部分 区分大小写。
那时我真的在AP-1025上吗?为什么git branch
没有显示旁边有星星的任何分支?这是git branch
命令中的错误吗?
非常感谢任何指针。
答案 0 :(得分:3)
我猜您使用的是Windows。 Git将分支存储为磁盘上的文件。分支名称也作为名称存储在HEAD引用中。在Windows上,如果您创建文件AP-1025
,您可以稍后以ap-1025
打开它,这会导致git中的行为不当,因为名称实际上有所不同,但Windows允许打开该文件以读取分支信息。