相对较新的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。
有没有办法通过仅合并特定文件来解决这个问题?例如如果我想在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]
Foo/
目录是我不需要触及的遗留目录,但似乎在命名空间冲突中始终如一,即我最终得到的Foo/Two
是来自Foo/Two
而不是来自foo/Two
。鉴于我不需要以任何方式触摸该目录,有没有办法轻松指定不在结账时将其拉下来,这样我就不需要再检查按照#1的前半部分手动输出所需的文件夹
答案 0 :(得分:1)
我认为解决此问题的最简单方法是使用“磁盘工具”创建一个磁盘映像,使用区分大小写,记录的' filesystem,mount that,并将你的存储库签出到该文件系统中。
打开"磁盘工具",选择"新空白图像..."从文件菜单中选择" Mac OS Extended(区分大小写,日记)"对于Format,并配置与此类似的其他内容:
这将创建图像并将其安装在/Volumes/gitwork
,假设您使用了与我在此示例中使用的名称相同的名称。然后在终端中你可以:
$ cd /Volumes/gitwork
$ git clone http://host/myrepo.git