Puede usar una combinación en serie de git rebase
y git branch
para aplicar un grupo de confirmaciones en otra rama. Como ya lo publicó wolfc, el primer comando copia los commits. Sin embargo, el cambio no es visible hasta que agregue un nombre de rama a la parte superior del grupo.
Abra la imagen en una nueva pestaña ...
Para resumir los comandos en forma de texto:
- Abrir gitk como un proceso independiente con el comando:
gitk --all &
.
- Ejecutar
git rebase --onto a b f
.
- Presione F5en gitk . Nada cambia. Pero no
HEAD
está marcado.
- correr
git branch selection
- Presione F5en gitk . Aparece la nueva rama con sus commits.
Esto debería aclarar las cosas:
- Commit
a
es el nuevo destino raíz del grupo.
- Commit
b
es el commit antes del primer commit del grupo (exclusivo).
- Commit
f
es el último commit del grupo (inclusive).
Luego, puede usar git checkout feature && git reset --hard b
para eliminar las confirmaciones c
hasta f
de la feature
rama.
Además de esta respuesta, escribí una publicación de blog que describe los comandos en otro escenario que debería ayudar a usarlo en general.
b
basarsef
más adelante, pero eso no tiene nada que ver con la recolección de cerezas).