2012-05-30 31 views
11

Duplicar posibles:
How can I remove a commit on github?
How to delete a 'git commit'Eliminar una confirmación de github

así que estoy tratando de eliminar una confirmación de GitHub.

Hace 3 commits y estoy de acuerdo si se pierden todos los cambios.

Así que basado en las preguntas de aquí, hice un

git reset --hard <sha-commit-name-to-go-back-to> 
git push -f origin HEAD^:master 

Ahora que se ha ido de GitHub, así como en git log.

luego rehice mis cambios e hicieron

git add <file I changed> 
git commit 
git log 

Todo se ve bien. No hay rastro de los viejos commits. Así que finalmente hice una:

git push 

Ahora, de repente GitHub tiene esas tres commits que me había quitado.

¿Qué estoy haciendo mal? ¿Cómo evito que vuelvan los commits?

Respuesta

11

Utilice git rebase process antes de aplicar nuevos cambios. Después de volver a basar, agregue los nuevos cambios y confirme.

git rebase -i HEAD~2 

git push origin +master 
+0

¡Gracias! Esto parece haber funcionado. Sin embargo, al buscar en el directorio .git, encontré un grupo de archivos en el registro con referencias a la confirmación que deseo eliminar. También edité esos archivos para eliminar la referencia antes de hacer el git push origin + master. – Jistanidiot

+2

@Jistanidiot, muy probablemente estuviste jugando con el almacenamiento de 'git reflog'. No es una idea demasiado brillante, ya que 'git reflog' tiene sus propias formas de manipular su almacenamiento, y usted tuvo cambios para romper algo. – kostix

+2

¡Gracias! Primero hice un 'git reset --hard ' ¡luego usé tus comandos y funcionó como un amuleto! –

Cuestiones relacionadas