Как восстановить недостающие git коммитов? - PullRequest
2 голосов
/ 10 июля 2020

Я играл с проектом в git и, похоже, потерял месяцы коммитов.

Вот что я сделал:

git checkout veryoldcommit

Я просмотрел файлы, нашел то, что мне нужно (не внес никаких изменений).

Затем я запустил git checkout master, чтобы вернуться к последней фиксации.

Затем я хотел удалить только самую последнюю фиксацию, поэтому следуя совету здесь , я запустил git checkout HEAD-.

Это вызвало ошибку, я допустил опечатку. Я включаю здесь, если это актуально.

Затем я запустил git checkout HEAD~ (на этот раз с тильдой).

Теперь я застрял на veryoldcommit и не могу найти как получить доступ к новым коммитам. Я боюсь чего-либо трогать, потому что боюсь, что еще больше напортачу.

У меня месяцы работы над этим проектом, и он не копируется в удаленный репозиторий.

Что я наделал? И это поправимо?

1 Ответ

1 голос
/ 10 июля 2020

Да, это поправимо, вот что хорошо в git, он ничего не разрушает. Попробуйте это:

git log --graph --all --format='%h %s%n        (%an, %ar)%d' --abbrev-commit --reflog  

И найдите коммит ha sh, который вам нужен. Вы можете создать новую ветку на основе этой фиксации с помощью:

git checkout -b my-branch XXXXXX

или сбросить текущую ветку, чтобы указать на эту фиксацию

git reset --hard XXXXXXX

удачи.

Если вы параноик, прежде чем делать это, сделайте копию своего каталога .git в другом месте.

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