windows – 如何使“git分支”在Linux上尊重“core.ignorecase”标志?

前端之家收集整理的这篇文章主要介绍了windows – 如何使“git分支”在Linux上尊重“core.ignorecase”标志?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在办公室使用位于 Linux服务器上的远程 Git仓库.所有客户端都是安装 Git扩展的Windows PC,作为客户端(以msysgit运行).

在客户端系统上,如果我尝试执行以下操作:

git branch Branch1
git branch branch1

第二个命令将失败,告诉我一个具有该名称的分支已经存在.这是我期望的,因为我将core.ignorecase设置为true,在git config中.

但是,如果我直接登录到Linux系统并运行相同的命令,即使将core.ignorecase标志设置为true,也会创建两个分支.

我会期望第二个命令失败,因为我配置了存储库以忽略这种情况,但是标志在Linux系统上什么都不做,或者我错过了一些.

任何人都可以帮助我了解这个问题,因为我们计划将我们的SCM从Source Safe迁移到Git,这个问题令我们感到害怕.如果两个开发人员创建同名的分支,但是不同的情况,并将结果推送到Linux资源库会发生什么情况?

我想在@ meagar的答案中添加更多细节:

FAT32 / NTFS是case-preserving文件系统.也就是说,如果你命名一个文件“Foo.txt”,它将被存储为“Foo.txt”,如果你将文件保存为“foo.txt”,它将被保存为“foo.txt”由于它是不区分大小写的,“Foo.txt”和“foo.txt”实际上是一样的,您不能同时存在这两个文件.

在Windows中的存储库中,如果将名称从“Foo.txt”更改为“foo.txt”,并且如果您不将其显示为更改,则可以将core.ignorecase配置设置为true,并且git不会看到这是一个变化.如果你把它设置为false,它会. (但是由于文件系统和git的性质,似乎添加了一个新文件foo.txt,在Windows上增加了混乱).

这就是core.ignorecase的目的

来到分公司.分支只是指向提交的指针.这些指针只是文件.这些文件存储在.git / refs / heads中.当创建一个分支,比如说吧,创建一个名为.git / refs / head / bar的文件.现在,在Linux中,当您创建一个名为Bar的分支时,可以继续创建一个文件.git / refs / head / Bar,从而允许分支创建.但是在Windows上,您无法创建.git / refs / head / bar,因此当bar存在时,您将无法创建Bar分支.意识到core.ignorecase与您的存储库中的文件代码库相关,并且不影响git的元数据文件.

所以你必须生活在这样一个事实上,你可以创建名称相同的分支,但是在Windows中,你不能.

原文链接:https://www.f2er.com/windows/363726.html

猜你在找的Windows相关文章