Ho due rami che tengo sopra a monte/master. Un ramo ha l'altro come antenato in modo da formare una linea.Il modo più semplice per rebase di più rami in un unico lignaggio
U1 (upstream/master)
\
A -- B (fixes)
\
C -- D (features)
Più tardi, a monte/master si muove in avanti ...
U1 -- U2 (upstream/master)
\
A -- B (fixes)
\
C -- D (features)
... e voglio rebase entrambi i rami sulla parte superiore.
U1 -- U2 (upstream/master)
\
A' -- B' (fixes)
\
C' -- D' (features)
Conosco due modi per farlo, ciascuno con gli svantaggi.
git rebase upstream/master fixes
git rebase fixes features
Questi due comandi talvolta funzionano e talvolta mi danno conflitti di unione sul secondo comando.
git rebase upstream/master features
# figure out the hash code of the new commit corresponding with B'
git branch -f fixes <sha of B'>
Questo comporta solo un singolo rebase, ma lo spostamento dei rami è noioso e soggetto a errori.
Ho cercato in rebase --preserve-merges, ma ciò non sembra applicabile perché non ci sono commit di unione.
Esiste un modo migliore per eseguire il rebase?
Potrebbe farmi un favore e utilizzare diagrammi come questo: 'A - B - C'? Ciò non solo renderebbe più semplice la tua domanda, ma lo renderebbe anche più utile per gli altri in futuro. –
Modificato. È più chiaro? –
Ottimo lavoro, ho svalutato. –