Как загрузить определенное дерево мерзавца или выполнить коммит после принудительного нажатия - PullRequest
0 голосов
/ 09 июня 2018

Я отправил коммит с -force, не думая о последствиях, но у меня есть все предыдущие коммиты из старого запроса на извлечение, и я все еще могу видеть файлы и их коммиты.У меня вопрос: возможно ли загрузить репозиторий, даже если все коммиты были сброшены, но все еще есть коммиты из старого Pull-запроса?

Скажите, например, я хотел бы загрузить репозиторий по этой ссылкеhttps://github.com/organizaton/repo.github.io/commits/99fb22467f90a18be7e00aa1d51743bb4af20a43

Можно ли загрузить файлы репозитория таким образом?

Текущий репозиторий видит только 2 коммита, но ранее их было довольно много.Мне интересно, могу ли я вернуть их обратно?

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Даже если вы нажали с силой, удаленный репозиторий работает так же, как ваш локальный, и получил те же объекты, которые сохраняются в течение некоторого времени.

Что я хотел бы сделать, это выполнить

git reflog <branch>

… на ветку, с которой вы выполнили push --force, и попытайтесь получить хэш-сумму последнего коммита в дате, прежде чем вы это сделаете.Если вы не можете найти его отсюда (поскольку ваша ветвь, вероятно, отклонилась бы от долгого времени, прежде чем вы его нажали), вы можете попытаться получить удаленный рефлог через API событий Github:

https://api.github.com/repos/<your account>/<your repository>/events

Как только вы получите эту сумму, создайте тег, указывающий на хеш-сумму коммита

git tag <tagname> <hash>

Затем перенесите линию на сервер

git push origin <tagname>

Поскольку все еще должно быть на сервере (толькобез ссылки), это должно быть немедленно.После этого вы сможете просматривать старую историю, не изменяя текущего состояния ваших производственных веток.

Документы об API Github:

0 голосов
/ 09 июня 2018

Из вашего локального репозитория вы можете получить github запрос на получение , например:

git fetch origin pull/ID/head:newbranchname

например, с 1 вместо IDдля запрос на получение # 1

После этого вы можете счастливо переключить ветку с помощью git checkout newbranchname и осмотреть свое найденное сокровище с помощью git log

Источник: https://help.github.com/articles/checking-out-pull-requests-locally/

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