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

Tho*_* S. 11 windows git rename

我想在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
Run Code Online (Sandbox Code Playgroud)

我也尝试过force-option - 但结果相同:

$ 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
Run Code Online (Sandbox Code Playgroud)

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

Pie*_*ont 22

您可以尝试分两步完成.

$ git mv docs DOCS2
$ git mv DOCS2 DOCS
Run Code Online (Sandbox Code Playgroud)

它会工作

  • 问题不在于操作系统,因为 Windows 可以将目录从 docs 重命名为 DOCS 或 Docs。这是该工具的问题,不支持不区分大小写、保留大小写的文件系统。 (3认同)
  • 为什么git不能在内部做到这一点? (2认同)
  • 恕我直言,您可能会争辩说 git 已经必须在 Windows 上以不同的方式做事。我同意当您在 Windows 中重命名文件时 git 检测更改存在问题,但是如果您使用 `git mv` 它应该可以工作。我认为开发人员更有可能根本没有兴趣为此实施特殊情况。这更像是“我们来自 Linux,这就是它的工作方式”。 (2认同)