Проверил предыдущий коммит, внес изменения, теперь все потеряно? - PullRequest
1 голос
/ 19 марта 2019

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

Другими словами, я сделал следующее:

  1. git checkout bfea631 (предыдущий коммит)
  2. Изменено, добавил и зафиксировал много файлов / изменений.
  3. git checkout master
  4. Сделал коммит.
  5. git checkout bfea631 (предыдущий коммит)
  6. Замеченомои изменения, сделанные на шаге 2, пропали.

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

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Вы можете попытаться найти свой коммит, используя git reflog. Это показывает, где ваш HEAD был в последнее время.

0 голосов
/ 19 марта 2019

Почему это произошло?

После проверки коммита напрямую, как вы сделали, ваш HEAD больше не привязан к ветке. (известный как «отключенное состояние HEAD»)

Это означает, что дальнейшие коммиты примут коммит, который вы извлекли, как своего родителя, и в конечном итоге сформируют цепочку коммитов, но на эту цепочку не ссылается ничего, кроме вашего текущего HEAD.

Теперь, когда вы извлекаете что-то еще, ветвь или коммит, коммит (или цепочка коммитов) остается "зависшим", ожидая сборщика мусора, в зависимости от настроек, но в большинстве случаев не менее 90 дней, поэтому нет паника.

Как вернуться на путь

Но задолго до того, как произойдет сборка мусора, вы можете вернуть его, просто проверив его снова. Либо просто просматривая вывод своего терминала, где хеш коммита, скорее всего, отображался рядом команд git ( быстро и легко, когда это возможно! ), либо, как уже предлагалось, в вашем reflog который содержит историю ваших предыдущих позиций в HEAD.

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