Как вернуться к последней фиксации в истории после того, как я использовал сброс мерзавца для движения в более старый changeset?

Предположим, что моя история идет тем путем:

A - B - C - D (ведущее устройство)

Если я делаю git reset B, Я буду, добрался:

A - B (ведущее устройство)

Проблема, git log теперь покажите мне только историю от до B, и я больше не вижу C и D.

Как я могу вернуться к D?

15
задан Jeff Yates 29 March 2010 в 19:26
поделиться

2 ответа

Вы должны быть в состоянии увидеть D с помощью git reflog.

Смотрите, например, эту статью.

Единственный раз, когда коммиты действительно удаляются, это если вы выполните git gc --prune (так что будьте осторожны с этим!).

Если вы запустите git reflog прямо сейчас в репозитории, в котором вы работали, вы увидите множество изменений, которые выглядят примерно так:

c5c3a82... HEAD@{0}: pull origin featureB: Merge made by recursive.
49d0608... HEAD@{1}: reset --hard HEAD^: updating HEAD
3ed01b1... HEAD@{2}: pull origin featureA: Merge made by recursive.
49d0608... HEAD@{3}: pull origin bugfixJ: Merge made by recursive.
854d44e... HEAD@{4}: commit: Add more cowbell to foo.c
6dbc22d... HEAD@{5}: pull origin bugfixI: Merge made by recursive.
9bdb763... HEAD@{6}: commit: Remove weevils
8518f9d... HEAD@{7}: checkout: moving from wickedfeature to master

Эти строки можно разделить на 4 части:

  • хэш коммита,
  • указатель коммита,
  • действие,
  • и дополнительная информация.

Если мы хотим вернуть коммит, который был потерян в HEAD@{1}, мы можем просто git reset --hard HEAD@{2}.
Теперь наша текущая ветка (и рабочая копия) установлена в состояние репозитория до того, как мы сделали сброс.

Если мы хотим просто посмотреть, что это было за состояние, мы можем git checkout -b temp HEAD@{2} (или git checkout HEAD@{2}, если у вас git 1.5.0 и выше).

24
ответ дан 1 December 2019 в 02:55
поделиться

Хорошо, нашел.

Вы можете использовать git reflog.

Я не знал, для чего это нужно, но теперь вижу, что это журнал всех ссылок, на которые указывал HEAD.

1
ответ дан 1 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: