Accidentalmente puse algunos cambios (cometer C) para master
lugar de twig. Más tarde creé otras twigs basándose en estos cambios ( branch1
y branch2
). Ahora me gustaría eliminar los cambios introducidos por la confirmación C
de todas las twigs (y moverlo a la branch-C
). ¿Es posible?
Situación actual:
A - B - C - D - - L - M - L - M master | \ | - N - O - P branch2 \ - E - F - G branch1
Situación Desidenetworking:
- C branch-C / A - B - D - - L - M - L - M master | \ | - N - O - P branch2 \ - E - F - G branch1
Debe volver a establecer la base de cada bifurcación, ya que cada confirmación hace reference a toda la cadena de confirmaciones principales a través del hash.
Puedes hacer algo como
for br in master branch1 branch2 do git rebase --onto BC "$br" done git branch branch-C C
El ciclo tal como está escrito funcionará sin problemas solo si no hay conflictos. En general, recomendaría ejecutarlo a mano.
Además, si lo haces a mano, puedes optimizar un poco. P.ej
git rebase --onto BD master git rebase --onto Dnew D branch1 git rebase --onto Lnew L branch2
donde Dnew
y Lnew
son las versiones Lnew
de D
y L
respectivamente.
Descargo de responsabilidad: no lo he probado; por favor, pruébelo primero en una copy de su repository.