【问题标题】:Git not showing star next to current local branchGit没有在当前本地分支旁边显示星号
【发布时间】:2016-12-31 22:56:56
【问题描述】:

我是 git 新手,遇到了一个令人困惑的情况。

总之,我无法理解与分支名称有关的区分大小写的工作原理。例如,我在 master 分支上并使用命令 git checkout -b AP-1025 创建一个名为 AP-1025 的新分支,现在我可以执行 git branch 并且我看到我在 AP-1025 上,因为它旁边有一个星号.

现在假设我对 AP-1025 进行了一些更改,提交它们,然后使用 git checkout master 切换回 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 命令中的错误吗?

非常感谢任何指针。

【问题讨论】:

    标签: git git-branch case-sensitive git-checkout


    【解决方案1】:

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

    【讨论】:

    • 啊,是的,我应该通过 cmd 指定我正在使用 Windows 7 git,git bash 似乎也以这种方式表现相同。我想避免这种混淆的唯一方法是在 Windows 上使用 git 时始终考虑分支名称的大小写敏感性?
    • 有什么办法可以解决这个问题?
    • @Robert 不确定,但值得一试git gc 它应该将分支打包到一个特殊文件中作为内容,而不是文件名,这样可以解决问题。如果不是 - 只需删除分支并使用正确的大小写创建。
    猜你喜欢
    • 2013-03-21
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 2019-01-12
    • 2018-06-25
    • 1970-01-01
    • 2014-07-24
    相关资源
    最近更新 更多