Восстановить удаленный коммит - PullRequest
0 голосов
/ 27 марта 2020

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

Поэтому я вернулся к предыдущей фиксации, используя

git reset --hard <commit>

, а затем

git push origin HEAD --force

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

, и я открывал Bit Bucket, и обе фиксации исчезли. Есть ЛЮБОЙ способ восстановить этот коммит ПОЖАЛУЙСТА?

Это проект groovy на Grails. Я использую intelliJ

1 Ответ

1 голос
/ 27 марта 2020

Ваш локальный репозиторий хранит копии коммитов по крайней мере 30 дней по умолчанию. Хранилище в Bitbucket, вероятно, не работает.

Если вы не стерли свой локальный репозиторий, поищите коммиты. Используйте git reflog или git reflog <branchname>. Reflog для HEAD содержит идентификаторы ha sh, которые HEAD представлены в прошлом. Reflog для данного имени ветки, например master, содержит идентификаторы ha sh, которые это имя ветки представляло в прошлом.

Если вы были на ветке xyzzy, когда делали git reset --hard <commit>, xyzzy@{1} представляет идентификатор ha sh, который xyzzy содержал до this git reset --hard, поэтому git reflog xyzzy покажет вам фиксацию, которую вы хотите. Теперь вы можете git reset --hard <commit> до этого га sh ID, увеличивая все числа на единицу, т.е. то, что было xyzzy@{1}, теперь xyzzy@{2} и неправильный коммит ha sh ID вас выбрал последний раз сейчас xyzzy@{1}. Между тем xyzzy (он же xyzzy@{0}) теперь является идентификатором га sh, который вы только что выбрали в это время.

Теперь вы можете git push origin HEAD или git push origin xyzzy отправить это га sh ID (и коммит (ы), если они потеряли его / их) для Git в Bitbucket, и попросите их установить xyzzy для этого ha sh ID. Вам понадобится --force, только если эта операция потеряет некоторые коммиты на их конце.

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