¿Se borraron todas las confirmaciones usando 'push -f origin master' de alguna manera para restaurar?

Me comprometí a usar 'git push -f origin master' y eliminó todas mis confirmaciones anteriores. ¿Hay alguna manera de restaurarlos o, al less, mostrar todos mis commits previos?

Puedes intentar esto:

 $ git reflog # show working tree, copy the last commit-hash that have all codes $ git checkout <commit-hash> # checkout to that commit, now you've all codes $ git checkout -b new-master # create a new branch named new-master & checkout. $ git branch -D master # delete your local master branch $ git checkout -b master # create master from current commit and checkout to master $ git push -f origin master # push all the codes to remote 

Use git reflog para ver los commits faltantes.

Luego, busca las confirmaciones que quieras y utiliza git reset para restablecerlas.

Después de restablecer los commits eliminados, luego presione los cambios al origen usando git push origin master

Puede usar el reflog desde su refrito de git local o repository remoto y encontrar el compromiso al que desea revertir;

 git reflog //at local level git reflog show remotes/origin/master // at remote level: 

El reflog muestra una list de todos los cambios en HEAD en order cronológico inverso. El has en la primera columna es el valor de HEAD después de que se realizó la acción de la derecha. Para que pueda encontrar el hash de confirmación y pagar el compromiso al que desea devolver su repository revisando su hash

 git checkout <commit-hash> 

Crear una bifurcación temporal desde la confirmación

 git checkout -b new-master 

Empujarlo de vuelta al repository remoto.

 git push -f origin master 

Sin embargo, esto habrá arreglado su maestro remoto, pero tenga en count que su maestro local sigue siendo el que ha introducido cambios destructivos, por lo que puede eliminarlo con el siguiente command si no necesita los cambios en él.

 git branch -D master , 

o puede que tenga que hacer algo como seleccionar todas las confirmaciones que se perdieron.

PD: también puedes encontrar git fsck más adecuado para recuperar commits perdidos