我有一个
dir1 /包含很多文件和子目录,我想将目录名更改为dir2 /。我试过了
git mv dir1 / dir2 /
我收到了这条消息:
fatal: renaming 'dir1' failed: Permission denied
更新
我从git for windows命令行http://code.google.com/p/msysgit/运行了 什么是正确的命令?
答案 0 :(得分:20)
也可能是其他程序正在使用目录(或其中的文件),这会阻止您对该文件夹执行任何操作。仅在Windows上,显然。
如果您不确定哪个程序捕获了该目录/文件,请使用Process Explorer。
答案 1 :(得分:9)
您可以使用标准的unix工具,也可以使用任何操作系统。所以:
mv dir1 dir2
应该有效。确保在完成后将dir1和dir2添加到暂存区域,以便提交更改。
如何提交更改(一旦完成)的示例可以是:
git add dir1 dir2 && git commit dir1 dir2
也可能有其他方法可以做到。
答案 2 :(得分:2)
需要将源目录和目标目录都检入git存储库。如果您将dir1移动到dir2并且尚未提交dir2,则会收到此错误消息。
答案 3 :(得分:0)
我在cygwin中运行git。在我从要重命名的目录中删除未跟踪的文件之前,我遇到了同样的问题。这允许git mv
正确完成。
如果您在运行git status
时在目录中看到要重命名的未跟踪文件,那么您必须暂时将这些文件移到其他位置并在git mv
之后将其重新导入。
答案 4 :(得分:0)
我遇到了同样的问题。 TGitCache.exe是阻止重命名文件夹的进程。使用TaksExplorer我已经杀死了进程并从Git Bash命令提示符运行命令。