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 commitB3y, 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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta