2016-08-24 56 views
1

我是git的新手,遇到了令人困惑的情况。Git没有在当前的本地分支旁显示星号

总之,我无法理解与分支名称有关的区分大小写的工作方式。例如,我在主分支上创建一个名为AP-1025的新分支,命令为git checkout -b 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命令中的错误吗?

任何指针,非常感谢。

回答

2

我想你使用Windows。 Git将分支作为文件存储在磁盘上。分支名称也作为名称存储在HEAD参考中。在Windows上,如果你创建文件AP-1025,你可以稍后打开它作为ap-1025,这会导致git中的错误行为,因为名称实际上不同,但Windows允许打开文件以读取分支信息。

+0

啊,是的,我应该指定我通过cmd使用Windows 7 git,git bash似乎也以这种方式表现相同。我想避免这种混淆的唯一方法是在Windows上使用git时始终考虑分支名称的区分大小写? –

+0

@ J.Schei只是总是考虑区分大小写;)在Linux上它只会失败(分支没有找到),在Windows上它将是越野车。 – kan

相关问题