Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git删除具有不同大小写的相同文件_Git - Fatal编程技术网

Git删除具有不同大小写的相同文件

Git删除具有不同大小写的相同文件,git,Git,由于一些必要性,为了区分大小写,我更改了.git/configignorecase=false。然后将文件从大写重命名为小写。例如,我手动将Account\u Model.php重命名为Account\u Model.php,甚至是其他分支 根据不同的情况,git进行了未提交的更改,然后我用小写字母提交了新文件(git假设新文件的小写字母) 现在我有麻烦了。我为要部署的服务器拉取repo,该目录创建2个文件。一个是Account\u model.php(我想要的),另一个是Account\u m

由于一些必要性,为了区分大小写,我更改了
.git/config
ignorecase=false
。然后将文件从大写重命名为小写。例如,我手动将
Account\u Model.php
重命名为
Account\u Model.php
,甚至是其他分支

根据不同的情况,git进行了
未提交的更改
,然后我用小写字母提交了新文件(git假设新文件的小写字母)

现在我有麻烦了。我为要部署的服务器拉取repo,该目录创建2个文件。一个是
Account\u model.php
(我想要的),另一个是
Account\u model.php

他们成了分开的两个文件!但回到我的本地,我在目录中只看到1个文件。(因为有一个,我不能删除大写的一个)

如果我更改其中一些,则具有不同案例的两个文件将同时发出警报。差异显示相同的修改

但我只能在目录中看到一个

我不能删除大写字母。(如果可以的话,我想小写的也应该是delete

有一种方法可以通过命令改变情况。我知道,我选择了错误的方法

那么,我如何处理这两个大小写文件,并永远保留更改(只有一个文件小写)


非常感谢。

OSX的文件系统在默认情况下是不区分大小写的。因此,如果在Git存储库中有两个文件的名称相同,但情况不同,那么您现在就遇到了问题

一个简单的解决方法是使用Disk Utility创建区分大小写的磁盘映像,将repo克隆到该映像上,在该映像上修复问题,然后推动修复

要制作磁盘映像

  • 打开磁盘实用程序
  • 执行文件->新建图像->空白图像
  • 将格式设置为OSX扩展(区分大小写,日志)


它将自动挂载并在
/Volumes
中等待您。克隆后,您应该会看到这两个文件,并可以随意处理它们。

好的!我最终按照您的方式创建了一个磁盘映像(然后可以看到不同大小写的文件),克隆所有文件,删除小写文件,将其从大写重命名为小写,并将其推送。谢谢。