2012-03-13 19 views
6

Fundí mi rama en principal y empujé, pensando que todo estaba bien. Resulta que el código tiene problemas, y me gustaría una forma de revertir la compilación de fusión, o la rama completa, la que sea más apropiada, para que otros puedan seguir trabajando cómodamente, como si mi fusión nunca hubiera sucedido.Revertir fusión de rama incorrecta

Luego tengo la intención de reparar mi bifurcación y volver a fusionarla. Leyendo man git-revert sugiere que podré volver a fusionar si uso -m para revertir toda la rama.

Respuesta

6

Acaba de reajustar HEAD para la confirmación anterior:

git reset --hard HEAD^ 

Usted no indica en su pregunta si empujado su combinación defectuosa o no, por lo que debe empujar con --force si este es el caso (ya que ha reescrito el historial en la rama principal).

Tenga en cuenta que volver a escribir el historial puede causar problemas para los otros desarrolladores si han basado su trabajo en la parte superior de la confirmación errónea. En este caso es posible que desee considerar:

git revert HEAD 

Sin embargo, esto creará un nuevo commit que hace lo contrario de la confirmación que los puntos de la cabeza a este momento y corromperá el repositorio. Restablecer es lo mejor en este sentido, ya que te deshaces de dos commits, uno defectuoso y otro para compensar el error.

+0

Lo siento, debería haber mencionado que ya había empujado. ¿Qué exactamente revertirá HEAD? Cree un commit "un-merge" para que en HEAD, mi rama se vea como si no estuviera comprometida, aunque la historia muestre lo contrario? – Letharion

+0

Exactamente. La historia mostrará la falla en la fusión y, además, otra confirmación que anula la confirmación errónea. Solo pruébalo, siempre puedes deshacerlo con "git reset --hard HEAD ^";) – ralphtheninja

Cuestiones relacionadas