2012-04-12 30 views
8

Tengo algunos compromisos que no quiero en mi proyecto, pero hay un compromiso basado en ellos que quiero en él. Esta es mi GitHub gráfico "red" del repositorio (ASCII, ya que todavía no puedo publicar imágenes):¿Cómo puedo omitir commits en git?

[]--[]--[_] 
|  | 
|  ------->| 
---------->[·]--[·]--[*] 

(-> significa una fusión)

Quiero borrar los cambios realizados en el dos [·] confirma, y ​​basa el [*] en el [_] anterior. He intentado fusionar y rebase, pero aplican los cambios de las confirmaciones no deseadas. ¿Es posible?

Disculpa si no estoy seguro, el inglés no es mi lengua materna. Gracias de antemano.

Respuesta

10

Te puedo dar dos opciones:

  • interactivo rebase (git rebase -i) que presenta una lista de confirmaciones, la edición de esta lista va a cambiar el resultado de la operación; le permite reordenar, eliminar o etiquetar estos commits para operaciones misceláneas. En su caso, puede reestablecer la rama de [*] en [_] y eliminar las líneas de confirmaciones no deseadas.

  • escoja a le permite aplicar los cambios de una sola cometen en otra rama. En su caso, simplemente puede marcar cherrypick commit [*] en la rama [_].

2

podría retirar su _ y cherry pick la *. Si desea eso en una sucursal separada, puede realizar una bifurcación desde _ antes de hacer esto.

Cuestiones relacionadas