加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 01:46:37 所属栏目:Windows 来源:网络整理
导读:我们正在办公室使用位于 Linux服务器上的远程 Git仓库.所有客户端都是安装 Git扩展的Windows PC,作为客户端(以msysgit运行). 在客户端系统上,如果我尝试执行以下操作: git branch Branch1git branch branch1 第二个命令将失败,告诉我一个具有该名称的分支已
我们正在办公室使用位于 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中,你不能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读