Ваш локальный репозиторий хранит копии коммитов по крайней мере 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
, только если эта операция потеряет некоторые коммиты на их конце.