我可以在Windows上创建一个分支,其分支大小与现有分支不同。但是Windows无法处理具有不同情况的分支。这是git中的错误吗?
以下是详细信息:
我是git的新手。假设我使用windows git
命令行克隆远程存储库。
$git clone remoteURL local
现在,如果我列出分支,我会得到类似的东西:
$git branch --all
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/foo
我现在可以做到:
$git branch FOO
并且git会成功,我得到:
$git branch --all
FOO
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/foo
如果我然后将FOO推送到远程存储库,我现在有两个具有相同名称的分支,但不同的大小写,Windows上的git不喜欢,也不适合。
这让我感到很害羞。是吗?或者有什么我想念的东西。
答案 0 :(得分:1)
要弄清楚为什么Windows抱怨要更多地了解Git如何管理分支机构。
Git中的分支基本上是.git/refs
内的文本文件,其中包含代表该分支尖端的Commit SHA。 Git中的分支名称转换为硬盘上的文本文件。
文件:.git / refs / heads / foo
分支:foo / bar
Windows上的文件名和文件路径不区分大小写。如果远程Git存储库位于Mac OS或Linux上,则文件路径在这些操作系统上区分大小写。一个名为“foo”的分支和另一个名为“FOO”的分支与这些操作系统上的Git不同。
远程服务器听起来像是一个Linux机器。在Windows上,名为“foo”和“FOO”的分支将映射到相同的文件路径:.git/refs/heads/foo
而不是Git期望的两个不同分支。