我有一组非常简单的 git 命令,这会导致一些奇怪的行为:
显示我当前的本地分支机构,并查看我在release/beta1
:
$ git branch
develop
master
* release/beta1
创建一个bugfix/somefeature
分支来自release/beta1
:
$ git checkout -b bugfix/somefeature
Switched to a new branch 'bugfix/somefeature'
到目前为止一切都很好,对吧?好吧,再次显示本地分支:
$ git branch
BUGFIX/somefeature
问题:
- 为什么
bugfix
我的分支的前缀大写为BUGFIX
?
- 相关的是,为什么我当前的分支没有标有星号?
我在 OS X 10.8.2 上通过 Homebrew 使用 git 版本 1.8.1.5,不管有没有我的相当驯服,都会发生这种情况~/.gitconfig
到位。似乎每个人都会发生这种情况bugfix/...
branch.
分支存储为files内.git
目录。单个分支是包含分支指向的提交对象的哈希值的单个文件。
因此,正如您可能猜到的那样,在创建分支时foo/bar
这将对应于一个带有文件的目录。所以Git会创建一个文件夹foo
有一个文件bar
然后指向提交。
这意味着当您添加另一个分支时foo/baz
它将创建一个文件baz
并将其添加到文件夹中。
现在,对于不区分大小写的文件系统,分支名称不区分大小写。这意味着FOO/bar
and foo/bar
是相同的。但实际情况internal名称取自原始文件夹和文件名。所以当你的文件夹bugfix
分支类别是大写的,那么分支就用大写来识别BUGFIX
.
要解决这个问题,只需进入.git/refs/heads
并将文件夹名称更改为您喜欢的方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)