Git - Можем ли мы восстановить удаленные коммиты?

git restore git-commit

29517 просмотра

3 ответа

На этот вопрос уже есть ответ здесь:

Я удивлен, я не мог найти ответ на это на SO.

Можем ли мы восстановить / восстановить удаленные коммиты в git?

Например, это то, что я сделал:

# Remove the last commit from my local branch
$ git reset --hard HEAD~1

# Force push the delete
$ git push --force

Теперь, есть ли способ вернуть коммит, который был удален? Git записывает (лог) удаление внутри?

Автор: Atri Источник Размещён: 15.10.2019 05:46

Ответы (3)


122 плюса

Решение

Чтобы вернуться к этому коммиту, вы можете использовать reflog, чтобы посмотреть его ref.

Журналы ссылок, или «reflogs», записывают, когда подсказки веток и другие ссылки были обновлены в локальном хранилище.

Запустите эту команду:

git reflog

Просканируйте первые несколько записей и найдите потерянный коммит. Отслеживайте идентификатор этого коммита (вы можете использовать 1-й или 2-й столбцы). Давайте назовем идентификатор «ID».

Если вы не сделали никакой дополнительной работы после сброса --hard, вы можете сделать:

git reset --hard ID
git push -f origin master

Если вы выполнили другую работу после сброса, вы можете выбрать вишню, если вернетесь в свою ветку следующим образом:

git cherry-pick ID
git push origin master
Автор: Jonathan.Brink Размещён: 12.01.2016 07:10

14 плюса

Да, вы можете найти ваш коммит в reflogиспользовании:

git reflog

чтобы отобразить все коммиты, которые были / были созданы в вашем репозитории - после этого вы должны оформить заказ на удаленный коммит командой checkout

git checkout <your commit-SHA>

или выбери вишню по:

git cherry-pick <your commit-SHA>
Автор: Konrad Krakowiak Размещён: 12.01.2016 07:08

4 плюса

Попробуйте git reflog, также называемые Справочные журналы, это позволяет вам вернуться к истории в вашем локальном репо.

https://git-scm.com/docs/git-reflog

Автор: Parano Размещён: 12.01.2016 07:09
Вопросы из категории :
32x32