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中,你不能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在Windows 7上的Haskell平台中使用Curl
- Windows系统里Oracle 11g R2 Client(64bit)的下载与安装
- 在WINDOWS上编译Objective-C时出现错误“Foundation.h:找不
- windows – 命令行web浏览
- Windows环境中的文件路径区分大小写?
- 添加Windows组件后,是否需要重新安装其最新的Service Pack?
- 如何在Windows上正确使用node.js child_process.spawn()重定
- Microsoft符号服务器/本地缓存哈希算法
- windows-server-2012 – Windows Server 2012上的FTP服务器
- Windows下的matplotlib画图中文显示设置
- windows – 如何在Vim中的每个拆分窗口的状态行中
- Windows server 2012远程桌面会话主机和远程桌面
- windows-phone-7 – 如何更改Panorama项目标题的
- windows – 有没有办法直接查询文件系统设备驱动
- windows-phone-8 – 新的Live磁贴在Windows Phon
- 应用程序无法正常启动0xc000007b解决方法
- windows – 有没有人试过他们的软件与ReactOS?
- 如何从Windows机器到远程Linux JVM运行Jprofiler
- exchange-2007 – 重新启动时禁用Server 2008服务
- Nexus3.0搭建私服上传JAR包 Windows10