Git rebase - commit select en modo fork-point
Leer elgit rebase
ygit merge-base
documentación del hombre:
Después de trabajar en la rama de tema creada con git checkout -b topic origin / master, el historial de la rama de seguimiento remoto / master puede haberse rebobinado y reconstruido, lo que lleva a un historial de esta forma:
o---B1
/
---o---o---B2--o---o---o---B (origin/master)
\
B3
\
Derived (topic)
donde origin / master solía apuntar a commits B3, B2, B1 y ahora apunta a B, y su rama de tema se inició por encima cuando origin / master estaba en B3. Este modo utiliza el registro de origen / maestro para encontrar B3 como el punto de bifurcación, de modo que el tema pueda ser modificado en la parte superior del origen / maestro actualizado mediante:
$ fork_point=$(git merge-base --fork-point origin/master topic)
$ git rebase --onto origin/master $fork_point topic
$fork_point
será (si lo entiendo correctamente) el objeto commitB3
y, por lo tanto, él se comprometeB3..topic
será refundado enorigin/master
rama.
Q1 ¿Por qué es útil omitir elB3
¿cometer? Los compromisos de latopic
rama se construyen en la parte superior de laB3
cometer, por lo que omitirlo significaría que sus modificaciones faltarían en la historia delorigin/master
rama. Rebasando elB3
cometery eltopic
rama conduciría a una historia más limpia, ¿no?
Q2 ¿Alguien puede vincular / describir brevemente casos prácticos de uso de--fork-point
opción en el flujo de trabajo de git?