检查git repo到不区分大小写的FS

时间:2015-09-22 21:20:03

标签: git

相对较新的git;使用一些git repos,不幸的是,文件/目录的名称相同,除了大小写,例如。

Bar/
Bar/one
Bar/oNe
Foo/
Foo/Two
foo/
foo/Two
foo/three

我有时必须使用默认HFS +文件系统的OSX盒子来处理这种repo,这是不区分大小写的,因此当我克隆或检查这个repo时,命名空间冲突会导致我丢失一些文件:

Bar/
Bar/oNe
Foo/
Foo/Two
Foo/three

目前不能重命名原件,也不能在该盒子上使用不同的FS。

  1. 有没有办法通过仅合并特定文件来解决这个问题?例如如果我想在Bar/oNe上工作,比如:

    $ git checkout master
    $ git checkout master Bar/one # clobbers the Bar/oNe I have locally
    [edit Bar/one]
    [do something to marge Bar/one back in without affecting Bar/oNe, which now appears to have been deleted in my working copy]
    
  2. Foo/目录是我不需要触及的遗留目录,但似乎在命名空间冲突中始终如一,即我最终得到的Foo/Two是来自Foo/Two而不是来自foo/Two。鉴于我不需要以任何方式触摸该目录,有没有办法轻松指定在结账时将其拉下来,这样我就不需要再检查按照#1的前半部分手动输出所需的文件夹

1 个答案:

答案 0 :(得分:1)

我认为解决此问题的最简单方法是使用“磁盘工具”创建一个磁盘映像,使用区分大小写,记录的' filesystem,mount that,并将你的存储库签出到该文件系统中。

打开"磁盘工具",选择"新空白图像..."从文件菜单中选择" Mac OS Extended(区分大小写,日记)"对于Format,并配置与此类似的其他内容:

creating a new disk image

这将创建图像并将其安装在/Volumes/gitwork,假设您使用了与我在此示例中使用的名称相同的名称。然后在终端中你可以:

$ cd /Volumes/gitwork
$ git clone http://host/myrepo.git