Git:在 Windows 上重命名目录(仅限大小写)

问题描述 投票:0回答:4

我想重命名Windows系统上Git版本控制的目录(更改目录名称的大小写):

$ git mv docs DOCS
Rename from 'docs' to 'DOCS/docs' failed. Should I try again? (y/n) n
fatal: renaming 'docs' failed: Permission denied

我也尝试过使用强制选项 - 但结果相同:

$ git mv --force docs DOCS
Rename from 'docs' to 'DOCS/docs' failed. Should I try again? (y/n) n
fatal: renaming 'docs' failed: Permission denied

由于某种原因,Git 失败了,因为它认为 DOCS 已经是一个现有目录,并且应该将该目录移动到其中。我知道我可以使用临时目录名称重命名和提交,然后重命名和修改提交到最终名称,但是有没有办法告诉 Git 我不想移动到任何其他目录中?

windows git rename
4个回答
77
投票

您可以尝试分两步完成。

$ git mv docs DOCS2
$ git mv DOCS2 DOCS

会起作用的


0
投票

我尝试使用 TortoiseGit 使用 rename 重命名我的目录,使用 git mv 命令提示符重命名我的目录,并使用 git mv 重命名 git bash。移动命令是 mv Status status 或 git mv Status status2,它们都响应“失败:权限被拒绝”。所以看来我要么必须删除 git 存储库并使用新的目录名称结构创建一个新的存储库,要么我必须创建一个 Linux 虚拟机,将其克隆下来,然后尝试在那里重命名它。 windows下好像只能重命名文件,而目录就不行了。至于那些说 git mv 对他们有用的人,你的设置中一定缺少一些东西。


-1
投票

由于 Windows 区分大小写,因此您无法将文件重命名为相同的字母。 (文档==文档[忽略大小写])

您可以从

git bash
执行此操作,因为 git bash 是 cygwin,并且由于它是 unix 模拟器而区分大小写。

命令是 git mv

git mv <old name> <new name>

这是 git bash 的演示。 (Windows 7的)


-2
投票

不。没有办法告诉 Git 您不想将该文件夹移动到任何其他目录中。

这不是git的限制,而是Windows和NTFS的限制。由于文件系统不区分大小写,因此它报告大小写更改的新名称已存在,这会导致您遇到的行为。尝试两步重命名(使用临时名称),然后提交,或在非 Windows(技术上在区分大小写的文件系统)计算机上更改它。

© www.soinside.com 2019 - 2024. All rights reserved.