У меня есть репозиторий на GitHub с множеством проблем. Я хочу заменить всю кодовую базу этого репо на новую, но хочу сохранить всю предыдущую информацию.
Как лучше всего сделать это, не испортив код или GitHub?
Поскольку git push --force origin master
не сохраняет кодовые коммиты из старого проекта, я думаю, что на этот вопрос нужен другой ответ. Я уже сделал ответ для проекта Android Studio, но он не сильно отличается от использования исключительно Git.
Я назову старый проект на GitHub, который вы хотите заменить MyProject
.
Переименуйте ваш текущий проект (или скопируйте его в новое место и удалите папку с исходным именем проекта. Мы клонируем старую версию проекта из GitHub в это место.)
Перейдите в каталог, в котором вы хотите разместить свой проект, и запустите
git clone https://github.com/username/repo.git
Замените username
на ваше имя пользователя GitHub и repo
с вашим именем хранилища.
Вы можете попробовать
git rm -r *
Но если это не сработает (так как у меня это не сработало), то удалите вручную их с помощью rm
или файлового менеджера. Однако не удаляют папку .git
и .gitignore
.
Затем, если вы удалили их вручную, вам нужно обновить git.
git add -u
git commit -m "deleting old files before adding updated project"
Скопируйте все файлы из вашего нового проекта, для которого вы ранее сделали резервную копию. Теперь дайте git знать, что вы хотите добавить их в репозиторий.
git add .
git commit -m "new updated project"
git push
Теперь ваш новый проект будет в GitHub, но история коммитов старого проекта все еще будет доступна.