Considere este escenario:¿Cómo revertir las dos confirmaciones anteriores?
- desarrollador A no una confirmación: #n
- Dev. B confirma # n + 1
- Dev. Una hace cometer # n + 2
- y comprometerse # n + 3
y luego descubre que en su comprometerse nº n + 2, introdujo un defecto.
¿Cómo puede dev. Una reversión de sus 2 últimos commits y continuar desarrollando en commit # n + 1?
Probamos git reset --hard HEAD~2
*, pero va a volver a dev de cometer un #n.
git reset HEAD ~ 2 debe reiniciarse a # n + 1 commit si ha realizado B commits en ese punto. ¿Los sacaste? – Snowbear
... no antes de # n + 2 commit. Era: [0] B empujó 'commit' # n + 1, [1] A' commit'ted # n + 2, [2] fracasado 'push', [3]' pull', [4] 'push' . Entonces en github ahora hay una confirmación (# n + 2) y una rama de combinación 'master' (# n + 3). –
Si ya ha publicado la confirmación, no debe usar reiniciar para deshacerla. (Si algún otro desarrollador desconocido para ti ha sacado, esto causará dolor). En su lugar, utiliza revertir y hacer un nuevo compromiso que te lleve al estado que deseas. Nunca cambie un historial publicado. Ver http://book.git-scm.com/4_undoing_in_git_-_reset,_checkout_and_revert.html –