Сначала сделайте копию всего репозитория (cp -R /path/to/your/repo /path/to/backup/dir
).
Теперь работайте с исходным репозиторием. Предполагая, что вы были в ветке master
, выполните git reflog master
. Вы должны увидеть что-то вроде этого
6ebc064 (HEAD -> master) master@{0}: reset: moving to 6ebc0647a4347d411ea99ded0f9eeb94a5f622bd
ea36a86 master@{1}: commit: Adds README
9065d84 master@{2}: commit: Renames README
1d334db master@{3}: commit: Removed duplicate READMEs
.
.
.
6ebc064
- это то место, где вы сейчас находитесь. ea36a86
- это место, где раньше была ваша ветка master
. Теперь вы можете выполнить сброс до этого коммита, используя git reset --hard ea36a86
, и он должен привести дерево к ситуации, в которой оно было до того, как вы выполнили сброс. Как только это произойдет, просмотрите каталог и убедитесь, что все в порядке. Если это так, git push --force
ветка и все готово.