Git mv失败,致命:源目录为空

Git mv失败,致命:源目录为空,git,Git,我想维护repo子文件夹中文件的历史记录。但是我需要重命名顶级文件夹名。当我运行'git mv dirName newDirName 我得到“致命:源目录为空;” 我的源目录具有以下结构: gitRepoDir --.git --Source -- -DirLevel2 -- --DirLevel3 -- --DirLevel4 -- --DirLevel5 +++ --DirNameToRename +++ --sub1dir

我想维护repo子文件夹中文件的历史记录。但是我需要重命名顶级文件夹名。当我运行'git mv dirName newDirName 我得到“致命:源目录为空;”

我的源目录具有以下结构:

gitRepoDir
--.git
--Source 
--  -DirLevel2 
--   --DirLevel3 
--     --DirLevel4 
--       --DirLevel5 
+++       --DirNameToRename 
+++         --sub1dir 
+++           --File 
+++         --sub2dir 
+++           --File 
+++         --sub3dir 
+++           --File 
+++           --File 
+++         --sub4dir 
+++           --File

是否有方法重命名顶级文件夹并维护以下子文件夹中文件的历史记录?或者我需要先创建目录结构,然后使用git mv命令移动文件吗?

我认为它是“致命的:源目录为空;”,意味着dirName不受git控制,因为它不是源代码的一部分。
例如,您可以尝试“git status”,以确定git可以控制哪些内容。

通常,git命令中使用的路径名是从当前目录开始的相对路径

因此,对于您的问题,应检查以下内容

1) dirName是否是git管理的目录。您可以使用命令
git ls files


2) dirName文件夹是否在当前控制器下。

您应该告诉git mv跳过任何导致故障的操作

git mv -k dirName newDirName

如果在源文件夹的路径中使用反斜杠,则在Windows上可能会发生这种情况。

在我的情况下,错误消息
源目录为空
确实表明了这一点,即除非在该目录中添加,否则无法提交空的源目录。只有这样,我才能
git mv
那个目录。

你的.git文件夹在哪里?参见上面的目录结构编辑这是在Windows中吗?git命令在Windows中仍然区分大小写。错误表明它找不到源文件夹(或者它可以找到,并且是空的)。确保命令中使用的大小写与Windows资源管理器中目录的大小写匹配。显示由git管理的文件的命令是
git ls files
。我执行
git ls files
时不返回任何内容,直到Dirlevel2,然后它列出git控制下的文件。列出了我需要移动的所有文件。我试图从DirLevel2
git mv dirlevel3/dirlevel4/dirlevel5/DirNameToRename执行…
得到了相同的结果。是的,这些文件不在git控制之下,谢谢!:-)
git ls files
在当前执行的目录中不返回任何内容。在本例中,DirLevel2的DirLevel5(参见上面的目录结构)位于
git ls files
的位置,它确实列出了这些文件。