
Моя операция push не удалась, так как мой коллега закоммитил одну строку в ту же ветку, над которой я работал, а я забыл спрятать свою, поэтому я попытался отменить коммит коллеги и скопировать его в свои изменения, таким образом, как я думал, существовал бы только исходящий коммит. Это не сработало так, как я хотел, поэтому я попытался сбросить его коммит, и я щелкнул правой кнопкой мыши по коммиту, а затем нажал Reset->Delete --Hard (в visual studio), что удалило все его и мои коммиты.
Я снова зафиксировал свои изменения, только не смог отправить их на сервер. Я нашел команду git reflog
, но не уверен, смогу ли я использовать ее без использования десктопного клиента Git.
Есть ли способ найти мой невыложенный коммит с сервера с помощью SSH-клиента? Или мне просто все переписать? Около 50-100 строк кода потерялись.
РЕШЕНО:
Используйте меню Visual Studio Git в верхнем левом углу -> Открыть в командной строке, затем
git reflog
затем
git cherry-pick <SHA-1>
где SHA-1 — это голова ветви (например, HEAD@{1}), как описано в ссылке ниже в ответах пользователя user1686.
решение1
Либо git reflog
или git fsck --unreachable
как описано вhttps://stackoverflow.com/questions/30035998/удаленная-ветка-неожиданно-git-в-визуальной-студииможно найти недавно утерянные коммиты.
Однако методы восстановления необходимо запускать в репозитории, где находятся эти коммиты.быливидимый ранее. Если коммит не был успешно отправлен, то его вообще не будет на сервере Git — единственное место, где он будет — это ваш локальный репозиторий Git в VS.
(Хотя в репозитории сервера также может быть «reflog», он будет обновляться только в случае успешной отправки. Например, SSH можно использовать для восстановления коммитов, которые были успешно отправлены, но были перезаписаны более поздним принудительным отправкой, но не тех, которые были отклонены сразу.)
Я нашел команду «git reflog», но не уверен, смогу ли использовать ее без использования десктопного клиента Git.
«git reflog» — это изИнструменты командной строки Git, которые обычно входят в комплект большинства настольных клиентов Git, но на самом деле не привязаны ни к одному приложению.
Вы уже используете клиент Git для настольного компьютера — Visual Studio, — который также устанавливает копию Git, поэтому вам будет достаточно перейти cd
в исходный каталог и запустить его git
оттуда.