Замените репозиторий GitHub при сохранении проблем, вики и т.д.
У меня есть репо на GitHub с большим количеством проблем. Я хочу заменить всю базу кода этого репо на новую, но я хочу сохранить всю предыдущую информацию.
Какой лучший способ сделать это без испорчения кода и GitHub?
Ответы
Ответ 1
-
cd
в "новый" репозиторий
-
git remote add origin [email protected]:myusername/myrepository
(заменив myusername
и myrepository
соответственно)
-
git push --force origin master
- Возможно удалите другие удаленные ветки и нажмите новые.
Это решительно заменит все в удаленном репозитории на то, что у вас есть локально. Будьте очень осторожны, нет возврата.
Ответ 2
Так как git push --force origin master
не сохраняет код, связанный со старым проектом, я думаю, что этот вопрос нуждается в другом ответе. Я уже сделал ответ для проекта Android Studio, но он не сильно отличается от использования Git.
Я назову старый проект GitHub, который вы хотите заменить MyProject
.
Резервное копирование нового проекта
Переименуйте свой текущий проект (или скопируйте его в новое место и удалите папку с исходным именем проекта. Мы будем клонировать старую версию проекта из GitHub в это место.)
Клонировать старый проект из 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"
Нажмите свои изменения в GitHub
git push
Теперь ваш новый проект будет в GitHub, но история создания старого проекта будет доступна.
Ответ 3
Подобную проблему я решил способом, описанным ниже.
Предположения:
- "старый проект" находится на GitHub репо
- "Новый проект" создан локально на вашей машине
Ожидания:
- новый проект должен быть перенесен в старый репозиторий на github
- старая история коммитов должна оставаться и быть видимой в github
Решение:
1) перейдите в папку "старый проект" на вашем локальном компьютере
2) найдите там скрытую папку ".git" и скопируйте ее
3) перейдите в новую папку проекта на вашем компьютере
4) проверьте, есть ли папка .git (она скрыта, поэтому вам нужно показать скрытые файлы)
- если есть папка .git, переименуйте ее, вы можете либо удалить ее, но лучше переименовать ее сейчас и удалить, если все пойдет по плану
- если папка .git отсутствует, перейдите к пункту 5 ниже.
5) вставьте ранее скопированную папку .git (из старого проекта) и вставьте ее в папку "новый проект"
Теперь новый проект имеет папку .git со всеми предыдущими изменениями и историей и содержит ссылку на URL вашего старого репозитория на GitHub.
6) Если вы используете, например, VS, вы можете проверить изменения в коде. Их будет много, или проверьте их в терминале. Вы можете проверить, что старые файлы были удалены и добавлены новые.
7) Нажмите актуальный новый проект. Этот новый проект будет перенесен в ваш старый репозиторий на GitHub.
Проверьте свое git-репо в Интернете, чтобы убедиться, что все прошло хорошо.
8) Теперь вы можете удалить старый проект с вашего локального компьютера и удалить переименованную новую скрытую папку git (она была переименована в пункте 4).
Теперь вы можете разработать свой новый проект, сохраняя всю старую историю при себе.
Надеюсь, это поможет.