mac中Git碰撞路径

mac中Git碰撞路径,git,Git,在Mac中克隆项目时,我收到以下消息: Cloning into 'cinetogoproject'... remote: Counting objects: 3863, done. remote: Compressing objects: 100% (2777/2777), done. remote: Total 3863 (delta 1203), reused 2940 (delta 762) Receiving objects: 100% (3863/3863), 152.22 MiB

在Mac中克隆项目时,我收到以下消息:

Cloning into 'cinetogoproject'...
remote: Counting objects: 3863, done.
remote: Compressing objects: 100% (2777/2777), done.
remote: Total 3863 (delta 1203), reused 2940 (delta 762)
Receiving objects: 100% (3863/3863), 152.22 MiB | 3.12 MiB/s, done.
Resolving deltas: 100% (1203/1203), done.
Updating files: 100% (3109/3109), done.
warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:

  'frontend/cinetogo/source/src/attractora/Functions/index.js'
  'frontend/cinetogo/source/src/attractora/functions/index.js'
听起来可能类似,但我的情况不同,因为其中一个冲突目录不存在

出现这个问题的原因是我将目录
函数
重命名为
函数
,希望git能够正常管理更改,但是在拉取时,更改与其他程序员的提交冲突

现在,合并冲突已报告,我可以解决它们。。。但是git为不存在的
函数
解决了这些问题,而为确实存在的
函数
解决了这些问题,即使文件中已经没有合并冲突


有什么办法可以解决这个问题吗?

这确实是同一个问题。您有两个目录,只是大小写不同,您无法将这两个目录都写入您的系统,因为您的Mac是以不区分大小写的方式格式化的。它们都存在于Git中,并且是独立的,但是您的系统无法同时处理这两者

合并冲突可能被写入一个文件的树中,然后被另一个文件覆盖,这就是您无法解决它们的原因

您有一些选择:

  • 重新安装操作系统(或格式化新的APFS分区),使其区分大小写,然后签出存储库
  • 使用LinuxVM或LinuxDocker容器并装载repo以使用它
  • 删除其中一个目录,如所示

如果您和您的合作者计划在不区分大小写的系统上进行此项目,我强烈建议您采用强制使用名称大小写的策略。有时,这在您的语言或框架中是习惯性的,例如Java如何按照类的拼写将其文件命名为大小写,但是如果您的框架缺少这一点,我建议始终使用小写。您可能希望在CI系统中强制执行此操作(例如,通过检查
git ls文件的输出
)。

不区分大小写的文件系统过去、现在和将来都是一个糟糕的主意。