Git mv не работает с Fatal: исходный каталог пуст

Я хотел бы сохранить историю файлов в подпапке репо. Но мне нужно переименовать имя папки верхнего уровня. Когда я запускаю 'git mv dirName newDirName Я получаю "Fatal: исходный каталог пуст";

Мой исходный каталог имеет следующую структуру:

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

Есть ли способ переименовать папку верхнего уровня и сохранить историю файлов в подпапках ниже? Или мне нужно сначала создать структуру каталогов, а затем переместить файлы с помощью команды git mv?

Ответ 1

Я думаю, что "Fatal: исходный каталог пуст", означает, что dirName не находится под управлением git, потому что он не является частью источника. Например, вы можете попробовать "git status", чтобы выяснить, что можно контролировать с помощью git.

Ответ 2

Вы должны просто сказать git mv пропустить любую операцию, приводящую к состоянию отказа

git mv -k dirName newDirName

Ответ 3

Обычно имя пути, используемое в команде git, представляет собой относительный путь, запущенный из текущего каталога.

Итак, для вашего вопроса необходимо проверить следующее.

1) Ли dirName - это каталог, управляемый git. вы можете использовать команду git ls-files

2) Будет ли папка dirName находиться под текущим режиссером.

Ответ 4

Это может произойти в Windows, если вы используете обратную косую черту в пути к исходной папке.