190 votos

Cómo aplastar commit en git después de que han sido empujados?

Esto le da una buena explicación de aplastamiento de múltiples compromete a:

http://git-scm.com/book/en/Git-Branching-Rebasing

pero no funciona para las confirmaciones que ya han sido empujado. ¿Cómo puedo aplastar a los más recientes compromete a ambos en mi local y remota de los repos?

EDIT: Cuando hago git rebase -i origin/master~4 master, mantener el primero como pick, el conjunto de los otros tres como squash, y, a continuación, salir (a través de la c-x c-c en emacs), me sale:

$ git rebase -i origin/master~4 master
# Not currently on any branch.
nothing to commit (working directory clean)

Could not apply 2f40e2c... Revert "issue 4427: bpf device permission change option added"
$ git rebase -i origin/master~4 master
Interactive rebase already started

donde 2f40 es el pick cometer. Y ahora ninguno de los 4 se compromete aparecen en git log. Esperaba que mi editor para ser reiniciado para que yo pudiera entrar un mensaje de confirmación. ¿Qué estoy haciendo mal?

239voto

Alan Haggai Alavi Puntos 34260

Squash compromete localmente con git rebase -i y luego la fuerza de empuje con git push origin +master .

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X