Ecco come rebase
funziona:
git checkout <my branch>
git rebase master
git checkout master
git merge <my branch>
Supponiamo di avere
---o----o----o----o master
\---A----B <my branch>
I primi due comandi ... commit git checkout git rebase master
... controlla il ramo delle modifiche che desideri applicare al master
ramo. Il rebase
comando prende i commit da <my branch>
(che non si trovano in master
) e li riapplica al capo di master
. In altre parole, il genitore del primo commit <my branch>
non è più un commit precedente nella master
storia, ma l'attuale responsabile di master
. I due comandi sono gli stessi di:
git rebase master <my branch>
Potrebbe essere più facile ricordare questo comando poiché entrambi i rami "base" e "modifica" sono espliciti.
. Il risultato della cronologia finale è:
---o----o----o----o master
\----A'----B' <my branch>
Gli ultimi due comandi ...
git checkout master
git merge <my branch>
... esegui un'unione di avanzamento rapido su cui applicare tutte le <my branch>
modifiche master
. Senza questo passaggio, il commit rebase non viene aggiunto a master
. Il risultato finale è:
---o----o----o----o----A'----B' master, <my branch>
master
ed <my branch>
entrambi i riferimenti B'
. Inoltre, da questo punto è sicuro eliminare il <my branch>
riferimento.
git branch -d <my branch>
--cached
durante il controllogit diff
. link