Мой репозиторий Мерзавца находится в неправильном корневом каталоге. Я могу переместить его? (../вместо./)

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

Таким образом, мой репозиторий находится в ./project каталог а не ./project/my-new-project каталог. Я не знаю, как я не понял проблему ранее, но я просто никогда не искал .git каталог до сих пор.

Существует ли путь, не уничтожая мой проект, чтобы переместить репозиторий в надлежащий каталог и затем сказать мерзавцу, какова новая основа проекта? Просто перемещение каталога не работает. Мерзавец думает, что все файлы были удалены.

111
задан Sep Roland 12 December 2016 в 16:50
поделиться

4 ответа

Probably the simplest thing, unless you have already created some history you want to save, would be to just delete the .git subdirectory and redo the init in the correct directory.

If you used git to solve the problem, any solution would necessarily leave behind a lot of "moved this file here" history entries that aren't actually changes, but you fixing a screwup at creation time. Better to just create it right.

18
ответ дан 24 November 2019 в 02:56
поделиться

Используйте git-mv , чтобы переместить файлы «вверх» в нужное место, затем git-rm «мой-новый-проект» каталог.

3
ответ дан 24 November 2019 в 02:56
поделиться

git filter-branch позволяет вам переписывать историю таким образом. На странице руководства git filter-branch даже есть ваш случай в качестве примера :

Чтобы переписать репозиторий так, чтобы он выглядел так, как будто foodir / был корнем его проекта, и отменить всю остальную историю:

 git filter-branch --subdirectory-filter foodir - --all

Вероятно, вы захотите git clone репозитория в новый подкаталог до (или после?) Запуска git filter-branch . (Клонирование до filter-branch и запуск filter-branch на новом клоне даст преимущество, если оставить исходный каталог .git / на месте в качестве резервной копии на случай, если что-то пойдет не так.)

35
ответ дан 24 November 2019 в 02:56
поделиться

У меня была противоположная проблема - мне пришлось перенести корень git в родительский каталог (из проекта / src в проект) К моему крайнему удивлению, сработало следующее !!

src$ mv .git ../ 
src$ cd ..
project$ git add src
project$ git commit -a

git ловко обнаружил, что все новые файлы были переименованы в версии старых, и история не была потеряна

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

239
ответ дан 24 November 2019 в 02:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: