Por ejemplo, en la siguiente rama maestra, necesito eliminar solo la confirmación af5c7bf16e6f04321f966b4231371b21475bc4da, que es la segunda debido a una rebase anterior:
commit 60b413512e616997c8b929012cf9ca56bf5c9113
Author: Luca G. Soave <[email protected]>
Date: Tue Apr 12 23:50:15 2011 +0200
add generic config/initializers/omniauth.example.rb
commit af5c7bf16e6f04321f966b4231371b21475bc4da
Author: Luca G. Soave <[email protected]>
Date: Fri Apr 22 00:15:50 2011 +0200
show github user info if logged
commit e6523efada4d75084e81971c4dc2aec621d45530
Author: Luca G. Soave <[email protected]>
Date: Fri Apr 22 17:20:48 2011 +0200
add multiple .container at blueprint layout
commit 414ceffc40ea4ac36ca68e6dd0a9ee97e73dee22
Author: Luca G. Soave <[email protected]>
Date: Thu Apr 21 19:55:57 2011 +0200
add %h1 Fantastic Logo + .right for 'Sign in with Github'
Necesito mantener
- la primera confirmación 60b413512e616997c8b929012cf9ca56bf5c9113,
- el tercer compromiso e6523efada4d75084e81971c4dc2aec621d45530 y
- la última confirmación 414ceffc40ea4ac36ca68e6dd0a9ee97e73dee22
"tirar" solo la segunda confirmación af5c7bf16e6f04321f966b4231371b21475bc4da
¿Cómo puedo hacer eso? Gracias de antemano Luca
fuente
Si rebase es una opción, puede rebase y simplemente soltarlo:
Si rebase no es una opción, simplemente puede revertirlo:
fuente
git rebase
que la elimine (ejecutandorebase
en modo interactivo y eliminando su entrada).A pesar de todo el crédito que recibieron las respuestas originales aquí, no las encontré para responder satisfactoriamente a la pregunta. Si se encuentra en una situación en la que necesita eliminar una confirmación o una colección de confirmaciones del medio del historial, esto es lo que sugiero:
Aquí hay información sobre Cherry Picking: ¿Qué significa elegir una confirmación con git?
Aquí hay algo sobre cómo hacerlo con Tortoise Git (como acabo de hacer). ¡Definitivamente es más fácil usar una utilidad de interfaz gráfica de usuario para este tipo de operaciones! Selección de cereza usando TortoiseGit
fuente