在Windows上通过Git bash更改文件夹的大小写

时间:2013-01-29 08:40:05

标签: windows git

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

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

我尝试过设置全局ignorecase标志:

git config --global core.ignorecase false

但它仍然无效。有些人建议将文件夹移出repo,删除,然后重新添加,但当其他人拉回购时,这个更改是否会被接收?还有什么我可以尝试的吗?

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

4 个答案:

答案 0 :(得分:47)

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

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

我认为这与rename(2)的MinGW实现不支持此操作的事实有关。请参阅此thread,CRT rename实施中的MSDN文档以及MoveFileEx函数的文档。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

git mv oldfolder newfolder

git add -u newfolder

git commit -m "changed the foldername whaddup"

Reference

答案 3 :(得分:0)

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

  1. 更改文件夹名称大小写之前从提交分支,作为临时分支,仅用于解决此问题。
  2. 进行樱桃采摘,以便在提交前解决文件夹大小写更改。
  3. 将新的临时分支的最终提交重置为旧分支。
  4. 删除临时分支。