Git:在Windows上重命名目录(只区分大小写)

n9vozmp4  于 2023-02-16  发布在  Windows
关注(0)|答案(4)|浏览(158)

我想重命名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

我也尝试过使用force选项,但结果相同:

$ 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已经是一个存在的目录,应该将该目录移到其中。我知道我可以使用临时目录名重命名& commit,然后将& amend-commit重命名为最终名称,但有没有办法告诉Git我不想移到任何其他目录中?

cyej8jka

cyej8jka1#

你可以尝试做它在2个步骤。

$ git mv docs DOCS2
$ git mv DOCS2 DOCS

会成功

eeq64g8w

eeq64g8w2#

我尝试过用TortoiseGit重命名目录,用git mv重命名命令提示符,用git mv重命名git bash。move命令是mv Status status或git mv Status status2,它们都响应“失败:权限被拒绝”。所以看起来我要么删除git仓库,然后用新的目录名结构创建一个新的仓库,要么创建一个Linux VM,克隆它,然后尝试在那里重命名它。看起来只有文件可以在windows下重命名,但是目录就是失败了。至于那些说git mv对他们有用的人,你的设置里肯定有什么地方漏了。

xxhby3vn

xxhby3vn3#

由于windows i区分大小写,你不能重命名文件为相同的字母.(Docs == docs [忽略大小写])
你可以在git bash中实现,因为git bash是cygwin,而且它是区分大小写的,因为它是一个unix模拟器。
命令是git mv

git mv <old name> <new name>

这是一个来自git bash的演示。(windows7)

qaxu7uf2

qaxu7uf24#

不可以。没有办法告诉Git你不想把文件夹移动到其他目录中。
这并不是git的局限,而是Windows和NTFS的局限。因为文件系统不区分大小写,它会报告已经存在大小写更改过的新名称,这就导致了你所遇到的行为。尝试两步重命名(使用临时名称),然后提交,或者在非Windows的计算机上更改(技术上是在区分大小写的文件系统上)。

相关问题