【发布时间】:2013-01-12 18:34:36
【问题描述】:
我需要更改文件夹和文件的大小写。我尝试的第一件事是重命名文件夹,但 Git 没有接受更改。所以我尝试使用git mv -f controller Controller 但它说:
fatal: renaming 'application/classes/controller failed: Permission denied
我已尝试设置全局忽略大小写标志:
git config --global core.ignorecase false
但它仍然不起作用。有些人建议将文件夹移出 repo,删除,然后重新添加,但是当其他人拉 repo 时,这个更改会被采纳吗?还有什么我可以尝试的吗?
编辑:它适用于文件,但不适用于文件夹。
【问题讨论】:
-
权限被拒绝可能只是因为您有一个资源管理器窗口或命令行客户端,该文件夹将此文件夹作为当前目录,因此无法重命名。确保不是这种情况,然后重试。
-
问题是Windows文件系统确实是保留大小写的。将
controller移动到Controller会将其移动到自身中。可能解决方案是将其移至临时名称,然后移至正确的名称。或者使用一个像样的操作系统;-) -
@MichaelWild NTFS 是保留大小写的,它可以很好地处理改变大小写的重命名。肯定有其他东西挡住了东西,可能是 Daniel 建议的某个资源管理器窗口。
-
可能是
git-mv(或者可能是较低级别的 MSYS 甚至 CRT 库)实现重命名的方式存在问题。我这里刚试过,重命名也失败了。但是,使用临时的就可以了。 -
移动文件夹时出现问题。更改文件的大小写有效。