2012-03-26 21 views
7

Supongamos que tengo la siguiente confirmaciones Git:Cómo eliminar temporalmente el último compromiso con Git?

  1. aaaaaa
  2. bbbbbb
  3. cccccc (la última)

me gustaría volver a bbbbbb y continuar el desarrollo a partir de ahí. Esencialmente, quiero eliminar ccccccpor ahora y ser capaz de recuperarlo en el futuro (sé que aún necesito el cccccc). ¿Debo revertir cccccc o retroceder a bbbbbb?

+0

Se trata de un repositorio git privado. – moey

Respuesta

7

Just Do:

git checkout -b dev_on_b bbbbbbb 

que dejará la rama con cccccc solo y darle una nueva rama a partir de bbbbbb. Cuando se desea volver a utilizar CCCCC puede realizar cualquiera de:

git merge branch_with_cccccc   # bring cccccc into dev_on_b 

o

git checkout branch_with_ccccc 
1

La solución correcta depende de si este es un repositorio público de git o no.

Si usa este comando, git revert HEAD^, volverá a (2), que puede ser lo correcto.

Pero deberá asegurarse de volver a (3) cuando haga un (4) y luego combinar los cambios cuando vuelva a comprometerse.

Es posible que desee ver en esto, ya que discutirá las diferentes opciones, basado en diferentes situaciones: http://book.git-scm.com/4_undoing_in_git_-_reset,_checkout_and_revert.html

+0

Gracias por los consejos. En realidad es para un repositorio privado, con algunos contribuyentes privados. – moey

8

Eso sí,

git branch for_later 
git reset --hard bbbbbb 

Por supuesto, no hacer esto si es cccccc ya empujado. En ese caso, use revertir.

+0

¿Quisiste decir empujar a github? – moey

+0

@ Siku-Siku.Com - Sí, a cualquier repo central compartido con otros – manojlds

Cuestiones relacionadas