我正在开发一个在Git版本控制下的OS X Lion上的项目。我有这些小写的目录,然后把它们大写(例如emailaddresses => emailaddresses),但Git似乎没有识别出这个变化。当我运行git ls-files和其他命令时,它仍然认为目录是小写的。

这是无害的吗,或者我应该做一些其他的事情来让Git接受这个更改?


当前回答

以下步骤帮助我解决了这个问题:

重命名文件夹为temp: mv文件夹temp //将你的文件夹重命名为temp 舞台和承诺: Git添加。 git commit -m "Temp" 重命名临时文件夹为您选择: mv temp文件夹//将temp文件夹重命名为您选择的名称(文件夹) Git添加。 git commit -m "Folder Fixed"

完成-你现在可以推了。

其他回答

您也可以在不使用GIT命令的情况下手动完成此操作。在.git文件夹中,只需删除带有你想要的名称的文件夹,即SomeName。然后将文件夹somename重命名为somename。更多细节在:如何修复文件夹名称设置为大写和git转换为小写

您可能正在使用不区分大小写(但保留大小写)的HFS+。我通常是这样做的:

$ git mv somename tmpname
$ git mv tmpname SomeName

尝试改变git的配置选项核心。在.gitconfig文件中忽略为false。

如何在Mac上区分大小写地获取mv

这是因为Mac OS X实现了保留大小写和大小写不敏感的功能,旨在帮助你。

虽然另一个答案中的双重重命名建议也可以,但我建议使用'——force'以获得最佳实践结果:

$ git mv --force somename SomeName

注意:如果你不使用force选项,git会像这样吐在你身上:

$ git mv somename SomeName
$ fatal: destination exists, source=somename, destination=SomeName

在上面的例子中,git命令失败了,文件系统或git的索引中没有任何文件被更改。

原因是基于linux的操作系统或macOS忽略了文件/文件夹名称的大小写区分。我们需要通过以下步骤来解决这个问题

For Exp, you want to change folder name from Base to base
1. mv Base base2
2. git add . && git commit -m "Fix folder name problem (wip)"
3. mv base2 base
4. git add . && git commit -m "Fixed folder name problem"