Подтвердить что ты не робот

Замените репозиторий GitHub при сохранении проблем, вики и т.д.

У меня есть репо на GitHub с большим количеством проблем. Я хочу заменить всю базу кода этого репо на новую, но я хочу сохранить всю предыдущую информацию.

Какой лучший способ сделать это без испорчения кода и GitHub?

4b9b3361

Ответ 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).

Теперь вы можете разработать свой новый проект, сохраняя всю старую историю при себе.

Надеюсь, это поможет.