Git分支未显示当前分支

4

我的同事错误地使用了大写字母来切换分支。对他来说,一切似乎都正常工作。他进行了提交并推送。
然而现在,执行 'git branch' 命令不会显示先前的小写分支名称,而是显示大写版本,但分支名称旁边没有星号(*)(如下图所示)。

[brettmac15:ehs-hybrid-prototype-2 kulpreetalagh$ git branch
    UX
    development
    master

[brettmac15:ehs-hybrid-prototype-2 kulpreetalagh$ git status
On banch ux
You branch is up-to-date with 'origin/ux'.
nothing to commit, working tree clean

brettmac15:ehs-hybrid-prototype-2 kulpreetalagh$

这是一个bug吗?他做错了什么吗?还是有办法修复它?


尝试将分支重命名为其“真实”名称:git branch -m ux - LeGEC
“refs/” 文件夹中的分支名称是什么? ls .git/refs/heads/ - LeGEC
HEAD 中的分支名称是什么?cat .git/HEAD - LeGEC
1
这是一个大小写折叠分支名称问题,因为您正在使用设置为不区分大小写的HFS+文件系统的Mac。您的Mac认为uxUX是同一个文件,而您的Git则认为它们是不同的分支。您可以在存储库中修复各种名称,但您和您的同事必须达成一致,选择一种特定的大写形式并坚持使用它。 - torek
1
很不幸,当涉及到这样的大小写折叠时,git会感到困惑。最好通过检出正确命名的分支名称来解决问题。具体而言,git将信任文件系统,该文件系统表示“当然,我在.git/refs/heads/ux内找到了一个文件,并且这是它的内容”,但在确定当前正在列出的分支是否为当前分支时,则使用区分大小写的比较。 - Lasse V. Karlsen
具体来说,当git运行在一个大小写不敏感的文件系统上时,就会发生这种情况。 - Lasse V. Karlsen
1个回答

3

这是@torek和@LasseVågsætherKarlsen上面的两个评论

这是其中一个大小写折叠分支名称问题,因为您在使用HFS+文件系统的Mac上,该文件系统设置为不区分大小写。您的Mac认为ux和UX是相同的文件,而您的Git认为它们是不同的分支。您可以修复存储库中的各种名称,但您和您的同事必须同意一种特定的大小写规则并坚持使用。

不幸的是,对于这样的大小写折叠,git会感到困惑。最好通过检出正确命名的分支名称来解决问题。具体来说,git将信任文件系统,该文件系统表示“当然,我在.git/refs/heads/ux内找到了一个文件,这就是它的内容”,但在确定当前正在列出的分支是否为当前分支时,则使用大小写敏感比较。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接