Pro Git
Pro Git Si mover los punteros de la rama alrededor no funciona para su caso, Git le proporciona la opción de hacer un compromiso (“commit”) nuevo que deshace todos los cambios de uno ya existente. Git llama a esta operación un “revert”, y en este escenario en particular, ha invocado algo así:
$ git revert -m 1 HEAD [master b1d8379] Revert "Merge branch 'topic'"La bandera -m 1 indica cuál padre es el “mainline” y debería ser mantenido. Cuando se invoque la fusión en el HEAD (git merge topic), el nuevo compromiso tiene dos padres: el primero es HEAD (C6), y el segundo es la punta de la rama siendo fusionada en (C4). En este caso, se quiere deshacer todos los cambios introducidos por el fusionamiento en el padre #2 (C4), pero manteniendo todo el contenido del padre #1 (C6).
El historial con el compromiso revertido se ve así:
Figure 4. History after git revert -m 1
El nuevo compromiso ^M tiene exactamente los mismos contenidos que C6, así que comenzando desde aquí es como si la fusión nunca hubiese sucedido, excepto que ahora los no fusionados compromisos están todavía en HEAD's history. Git se confundirá si intenta fusionar la rama temática en la rama master: