在 MacOS 上重命名文件夹后,git stash 或 git add 不适用于特定文件的分支

问题描述 投票:0回答:1

背景故事:我的组织中有一个前端存储库(我们称之为存储库 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
,它就会被添加

我的问题是为什么会发生这种情况?

git gitlab
1个回答
0
投票

macOS 和 Windows 上的默认文件系统在搜索时不区分大小写。他们使用您提供的大小写存储文件名,但当您搜索

metricCharts
metricCharts
时,他们都会找到
MetricCharts
。当文件被重命名时,这会导致 Git 犯规,唯一的区别是大小写。

解决方案很简单,涉及到两次重命名:

  1. 首先,确保工作目录中没有未提交的更改(
    git status
    必须报告“无需提交,工作树干净”)。
  2. 重命名磁盘上的文件,但使其名称与原始名称不同,不仅仅是大小写不同。例如,在末尾添加一个字母或数字。将更改添加到 Git。目前还不需要提交。
  3. 再次重命名磁盘上的文件,这次使用所需的最终名称。将更改添加到 Git 并提交

仅此而已。它以同样的方式适用于目录。

© www.soinside.com 2019 - 2024. All rights reserved.