miércoles, 12 de septiembre de 2018

Borrar commits del historial de un repositorio git

Borrando todo el historial

Algunas veces necesitamos "reiniciar" un repo. Por ejemplo, supongamos que nos olvidamos de incluir la licencia en el primer commit y no queremos dejar código sin ella.

Primero, asegurate de tener una copia extra de todo tu repo aparte. Luego, desde la carpeta original donde tenés el repo:

  1. Eliminá el historial
    rm -rf .git
  2. Inicializá tu repo
    git init
  3. Agregá todo lo que quieras tener en tu primer commit y luego
    git add .
  4. Creá el commit inicial
    git commit -m "Initial commit"
  5. Agregá el origen remoto a tu repo local
    git remote add origin https://github.com/........git
  6. Hacé push al repo remoto
    git push -u --force origin master

Borrando el último commit remoto

Algunas veces nos equivocamos o nos faltó algún detalle que no queremos que esté publicado por si solo. Por ejemplo, escribiste una clase y olvidaste ponerle licencia.

git push https://github.com/........git +xxxxxxxxxxx^:master

Donde 
  • https://github.com/........git es tu repo 
  • xxxxxxxxxxx = el numero de commit
Accedé a tu repo desde la Web y vas a ver que ese último commit ya no está. Podés repetir la oepración cuantas veces sea necesaria, aunque reemplazando el número de commit. 

Tené en cuenta que aunque borraste los commits remotos, aún los tenés localmente. Podés borrarlos localmente o simplemente clonar el repo de nuevo.