为什么简单的`git mv`会失败?

Win*_*Win 13 git

我正在尝试重命名本地文件.git directory:

git mv MyProj/src/ts0621/foobar.c NewProjName/src/ts0629/foobar.c
Run Code Online (Sandbox Code Playgroud)

然而,git失败了:

fatal: renaming 'MyProj/src/ts0621/foobar.c' failed: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我可以发誓git mv我在重命名子目录时为我工作,但由于某种原因,文件的简单重命名不起作用.为什么?

(当然,我MyProj/src/ts0621/foobar.c在尝试发出此命令之前验证了文件是否存在)

seh*_*ehe 17

可能是因为NewProjName/src/ts0629不存在

尝试

mkdir -pv NewProjName/src/ts0629
git add NewProjName/src/ts0629
Run Code Online (Sandbox Code Playgroud)

  • @WinWin:区别在于嵌套级别; git以不同方式处理_nested_文件; 它不会自动创建_and add_缺少的父目录_并立即跟踪它们.机会是,在拼写错误的情况下,这不是你想要的 (3认同)
  • 好.如果是这种情况,我会说git的错误信息是误导性的.:)它应该伴随"没有这样的文件或目录"与不存在的目标路径,而不是现有的源路径.由于缺乏更好的选择,我将使用您的解决方法. (3认同)