Переместить git-репозиторий в подкаталог по тому же пути, сохранив при этом всю его историю

У меня есть git-репозиторий с>100 коммитами, которые я инициализировал некоторое время назад по следующему пути:

/Users/myusername/

Тем не менее, все мои коммиты на самом деле для файлов в пути:

/Users/myusername/excess/folders/not/requiring/version/control/project_root/

Я должен был инициализировать хранилище в project_root/потому что мне не нужно ничего контролировать версией в верхних каталогах.

Есть ли простой способ изменить путь моего хранилища, чтобы верхний уровень хранилища был project_root/ сохраняя при этом мою историю версий как есть? Существуют ли дополнительные шаги, чтобы это отразилось и в моем удаленном репозитории, или я просто фиксирую и нажимаю после внесения изменений?

1 ответ

Решение

Если что-то пойдет не так, вы можете удалить скопированное .git* файлы и начать все сначала. Вот что вы можете сделать:

$ cp -r .git* path/to/project_root/
$ cd path/to/project_root/
$ git add -A .

Когда вы звоните git statusвсе, что вы должны увидеть, это переименовывать и удалять сейчас. Если все выглядит хорошо, вы можете удалить .git* в предыдущем корне.

Также помните, что любые файлы, которые существовали в истории, останутся там, что требует другой операции для очистки, если у вас есть файлы учетных данных и т. Д.

Другие вопросы по тегам