Перемещение файла в другую папку вместе с историей в git
Прежде всего, я взглянул на этот Вопрос, который в точности совпадает с тем, что я здесь рассматриваю. Но проблема в том, что решение , данное в вопросе, не работает для меня.
Приведенное решение таково:
git filter-branch --tree-filter "cd x; mkdir -p p/q; mv [files & sub-dirs] p/q" HEAD
, Чтобы переместить файлы и подкаталоги в x
в x/p/q
.
Моя структура каталогов:
mdwtest |-src | |-main | | |-java | | | |-a.txt | |-test | | |-java
Я попробовал эту команду из cmd.exe
в каталоге mdwtest
, который является моим локальным репозиторием git. Я побежал cmd.exe
как администратор.
git filter-branch --tree-filter "cd D:/gittraining/mdwtest/src; mv main/java/ /test/java/" HEAD
Но это дало следующий вывод в консоли cmd.exe
:
D:gittrainingmdwtest>git filter-branch --tree-filter "cd
D:/gittraining/mdwtest/src; mv main/java/ /test/java/" HEAD Rewrite
09a1198eeb1bf26a1245ea00cae38f22e91fd708 (1/15)mv: cannot move
`main/java/' to `/test/java' tree filter failed: cd
D:/gittraining/mdwtest/src; mv main/java/ /test/java/ rm: cannot
remove `/d/gittraining/mdwtest/.git-rewrite/revs': Permission denied
rm: cannot remove directory `/d/gittraining/mdwtest/.git-rewrite':
Directory not empty
Что я могу из этого извлечь, так это то, что у него есть некоторые проблемы с перемещением main/java
в test/java
, и я не имею ни малейшего представления о том, что могло бы помешать ему сделать это.
src/main/java/a.txt
переместится в src/test/java
вместе с историей.
В то время как решение кажется работать на многих людей, похоже, что-то идет не так в моем случае.
Не могли бы вы объяснить мне, что я здесь упускаю ?