Есть ли способ восстановить репозиторий GitHub, который был удален с помощью кода, и историю коммитов, сохраненную локально? - PullRequest
1 голос
/ 01 ноября 2019

По сути, я был в команде, у которой был репозиторий GitHub, который теперь удален. У меня все еще есть код, сохраненный локально на моем компьютере, и я хотел бы поместить проект на мой личный GitHub. Я хотел бы, чтобы был какой-то способ сохранить историю коммитов, чтобы другие члены команды могли отдать должное за проделанную ими работу. Однако, поскольку репо ушло, я больше не могу его раскошелиться, чтобы сделать это. Есть ли способ сделать это, или я должен просто восстановить репо и зачислить их в README? Или просто оставить все как есть?

1 Ответ

1 голос
/ 01 ноября 2019

Прежде всего, история фиксации хранится в папке .git каждой копии репо. Он не хранится и не управляется Github, скорее, копия репозитория Github также имеет папку .git , которая содержит ту же историю коммитов, что и ваша локальная копия. По сути, если папка .git имеет значение " intact ", то история фиксации все равно будет " intact ", когда вы нажмете репо где-нибудь, где-либо еще.

Во-вторых, Github поддерживает восстановление или восстановление удаленного репо, см. Восстановление удаленного репозитория из документов Github. Но этот вариант зависит от того, владеете ли вы учетной записью или организацией, которая создала старое репо, и если старое репо не было удалено более 90 дней, и если это старое репо не имеет вилок. Если вы можете восстановить его, то вы можете подключить его к своей личной учетной записи.

Если восстановление старого репозитория не вариант, другой (более простой, IMHO) вариант - создать новый репо и протолкнуть ваш локальный репозиторий. скопировать на этот новый пульт. Когда вы говорите, что « локально сохранен код на моем компьютере », я предполагаю, что это все еще рабочий репозиторий Git, подобный этому:

$ cd myproject
$ git log
$ git remote -v
origin  git@github.com:ginomempin/my-old-repo.git (fetch)
origin  git@github.com:ginomempin/my-old-repo.git (push)

где my-old-repo.git - это удаленное репозиторий Github, и в журналах все еще отображаются все коммиты. Перейти к Github и создать совершенно новый репо. Когда он перенаправит вас на страницу «ваш новый репозиторий пуст», обратите внимание на инструкции по продвижению существующего репо:

enter image description here

Поскольку у вас уже естьorigin в вашей локальной копии, вместо этого вы можете изменить его на новый URL:

$ git remote set-url origin git@github.com:ginomempin/my-new-repo.git
$ git remote -v
origin  git@github.com:ginomempin/my-new-repo.git (fetch)
origin  git@github.com:ginomempin/my-new-repo.git (push)

Теперь просто добавьте все это в новое хранилище:

$ git push --all

Это новое хранилище будеттеперь содержат все старые коммиты, как если бы они были такими же, как старые.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...