Puede usar una combinación en serie de git rebasey git branchpara 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
HEADestá marcado.
- correr
git branch selection
- Presione F5en gitk . Aparece la nueva rama con sus commits.
Esto debería aclarar las cosas:
- Commit
aes el nuevo destino raíz del grupo.
- Commit
bes el commit antes del primer commit del grupo (exclusivo).
- Commit
fes el último commit del grupo (inclusive).
Luego, puede usar git checkout feature && git reset --hard bpara eliminar las confirmaciones chasta fde la featurerama.
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.
bbasarsefmás adelante, pero eso no tiene nada que ver con la recolección de cerezas).