在 windows 中创建一个不同大小写的新分支
Creating a new branch with different caplitalization in windows
我可以在 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 推送到远程存储库,我现在有两个名称相同但大小写不同的分支,git on windows 不喜欢,也不能很好地工作。
我认为这是一个错误。是吗?还是我遗漏了什么。
要弄清楚 Windows 抱怨的原因,需要更多地了解 Git 如何管理分支机构。
Git 中的分支基本上是 .git/refs
中的一个文本文件,其中包含代表该分支尖端的 Commit SHA。 Git 中的分支名称转换为硬盘上的文本文件。
- 分支:foo
文件:.git/refs/heads/foo
分支机构:foo/bar
- 文件:.git/refs/heads/foo/栏
Windows 上的文件名和文件路径不区分大小写。如果远程 Git 存储库位于 Mac OS 或 Linux 上,文件路径 在这些操作系统上区分大小写 。一个名为 "foo" 的分支和另一个名为 "FOO" 的分支与 OS 上的 Git 不同。
远程服务器听起来像是一个Linux盒子。在 Windows 上,名为 "foo" 和 "FOO" 的分支将映射到 相同的 文件路径:.git/refs/heads/foo
而不是两个不同的分支,例如 Git预计。
我可以在 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 推送到远程存储库,我现在有两个名称相同但大小写不同的分支,git on windows 不喜欢,也不能很好地工作。
我认为这是一个错误。是吗?还是我遗漏了什么。
要弄清楚 Windows 抱怨的原因,需要更多地了解 Git 如何管理分支机构。
Git 中的分支基本上是 .git/refs
中的一个文本文件,其中包含代表该分支尖端的 Commit SHA。 Git 中的分支名称转换为硬盘上的文本文件。
- 分支:foo
文件:.git/refs/heads/foo
分支机构:foo/bar
- 文件:.git/refs/heads/foo/栏
Windows 上的文件名和文件路径不区分大小写。如果远程 Git 存储库位于 Mac OS 或 Linux 上,文件路径 在这些操作系统上区分大小写 。一个名为 "foo" 的分支和另一个名为 "FOO" 的分支与 OS 上的 Git 不同。
远程服务器听起来像是一个Linux盒子。在 Windows 上,名为 "foo" 和 "FOO" 的分支将映射到 相同的 文件路径:.git/refs/heads/foo
而不是两个不同的分支,例如 Git预计。