38

我需要更改文件夹和文件的大小写。我尝试的第一件事是重命名文件夹,但 Git 没有接受这些更改。所以我尝试使用git mv -f controller Controller,但它说:

fatal: renaming 'application/classes/controller failed: Permission denied

我尝试设置全局忽略大小写标志:

git config --global core.ignorecase false

但它仍然不起作用。有些人建议将文件夹移出 repo,删除,然后重新添加,但是当其他人拉 repo 时,这个更改会被采纳吗?还有什么我可以尝试的吗?

编辑:它适用于文件但不适用于文件夹。

4

4 回答 4

71

总结评论,您必须通过中间临时名称重命名目录。例如

git mv controller Controller-tmp
git mv Controller-tmp Controller

我认为这与 MinGW 的实现rename(2)不支持此操作有关。请参阅此线程rename、有关 CRT实现的 MSDN 文档和MoveFileEx函数的文档。

于 2013-01-29T10:03:19.107 回答
12

确保关闭 Visual Studio 和与该路径相关的任何 Windows 资源管理器文件夹。

于 2018-03-08T17:31:06.597 回答
0

确保在使用中间文件夹重命名文件夹后将更改添加到索引,如下所示。

git mv oldfolder newfolder

git add -u newfolder

git commit -m "changed the foldername whaddup"

参考

于 2014-06-30T11:52:52.410 回答
0

除了执行以下操作外,我无法解决此问题

  1. 在文件夹名称大小写更改之前从提交分支,作为临时分支只是为了解决此问题。
  2. 樱桃采摘提交以在提交前解决文件夹案例名称更改。
  3. 重置旧分支这个新的临时分支最终提交。
  4. 删除临时分支。
于 2019-08-01T13:47:13.933 回答