Revertir push al control remoto con sourcetree

Accidentalmente empujé una twig de característica al maestro remoto. Ahora quiero revertir el maestro a la confirmación anterior. Cuando selecciono 'Revertir la bifurcación actual a esta confirmación' solo se revierte la bifurcación local, y debido a que el maestro remoto está 55 adelante (empuje accidental) no puedo empujar el maestro local recién revertido al control remoto.

Al analizar este problema en SO y Google, descubrí que muchas personas usan forzar empujar usando la línea de command. Pero dado que estoy usando Source Tree, me gustaría encontrar una forma que realmente use Source Tree.

También encontré la opción de rebase, pero parece que no puedo encontrar un tutorial paso a paso.

¿Algunas ideas?

Cuando empuja un compromiso, la forma más segura de revertirlo (en lugar de forzar el empuje con -f) es usar la function de revert , por lo que se crea un nuevo compromiso además de su compromiso anterior.

Esto es posible con Sourcetree, haciendo clic con el button derecho en la confirmación que desea revertir y seleccionando "Invertir confirmación …".

enter image description here

Debería hacer esto para cada confirmación que desee revertir, en order inverso.

Sourcetree no le muestra la bandera -f : https://answers.atlassian.com/questions/54469/how-do-i-perform-a-forced-push-push-f-from-sourcetree

Por lo tanto, la única forma de devolver el control remoto a su estado original es git revert cada confirmación que haya introducido en el order inverso.

Suponiendo que el control remoto estuviese en la confirmación A y usted empujó su twig de característica manteniendo confirmadas B , C y D , tiene que

 git revert D git revert C git revert B git push 

El push funcionará bien ya que no está modificando el historial presionado, sino que impulsa un nuevo set de cambios.

Si desea acortar su serie de reversiones a una confirmación, puede hacer una

 git rebase -i origin/master 

y selecciona cada uno de tus commit revert para ser squashed . Luego, su push solo contendrá una confirmación que revierte D , C y B de una vez.

La mejor forma de hacerlo es con Reset <branch> to this commit opción de Reset <branch> to this commit muestra en la image a continuación.

Restablecer a la confirmación anterior

Se le mostrará una window emergente para elegir qué modo de restablecimiento de código desea elegir. [Vea abajo] Elige el modo de reinicio

Nota: Esto no es exactamente la reversión del código, pero elimina completamente la confirmación del control remoto y lo hace parecer más limpio.