背景故事:我的组织中有一个前端存储库(我们称之为存储库 A)在文件夹名称中存在大小写问题,我重命名了一个文件夹以与其他文件夹的大小写进行确认。在这次冒险中,我注意到 git 不支持文件夹重命名,我在 stackoverflow 上查找帮助,并以某种方式能够重命名文件夹,然后将一些更改提交到该特定文件夹的文件中。
目前: 我克隆了存储库 A 并切换到了我进行文件夹重命名冒险的分支。我注意到暂存区已经发生了一些变化,准备好
git add
我做了 git add
好奇,我之前已经在提交中做过了,我再次做了 git status
,令我震惊的是,文件仍然在那里,我尝试了 git stash
并观察到 git stash
中有一个条目但暂存区还有3个文件,准备好了git add
,我又做了一次git stash
,但还是有3个文件。
注意:我刚刚观察到,在远程中,我的文件夹名称是
metricCharts
,但是当我将其克隆到系统文件夹中时,名称仍为 MetricCharts
,当我 git stash
时,我看到路径中的文件夹名称更改为 metricCharts
然后如果我尝试git add
,它就会被添加
我的问题是为什么会发生这种情况?
macOS 和 Windows 上的默认文件系统在搜索时不区分大小写。他们使用您提供的大小写存储文件名,但当您搜索
metricCharts
或 metricCharts
时,他们都会找到 MetricCharts
。当文件被重命名时,这会导致 Git 犯规,唯一的区别是大小写。
解决方案很简单,涉及到两次重命名:
git status
必须报告“无需提交,工作树干净”)。仅此而已。它以同样的方式适用于目录。