Sto lavorando a un progetto (da solo) e per ogni funzionalità che sviluppo creo un nuovo ramo, lavoro su questa funzione, quindi lo unisco al master. Quindi normalmente non lavoro mai su due rami diversi contemporaneamente e non tocco mai master mentre lavoro su un ramo.Git branches & commit history after merge
Quando unisco un ramo, vedo che (utilizzando gitx
e gitk
) la cronologia del ramo principale ottiene tutti i commit che ho eseguito sul ramo unito. Voglio dire, se ho qualcosa di simile:
master a-b-c-d
\z-x-y--
|branch name
dopo l'unione ottengo:
a-b-c-d-z-x-y
|branch name
Sì, vedo il nome del ramo unito evidenziato (utilizzando gitx
e gitk
), ma quello che mi aspettavo è qualcosa che mostra esattamente dove sono fatte commit (a quale ramo) come:
master a-b-c-d--------M--
\-z-x-y-/
|branch name
Quindi mi aspetto di vedere un commit "M" che rappresenta l'unione che ho fatto da padroneggiare, no Per sembrare che tutti i commit che ho fatto al nuovo ramo siano stati fatti per padroneggiare.
Le mie aspettative sono corrette? O questo è normale comportamento git
?
Vi sono alcuni vantaggi nell'usare '--no-ff' durante l'unione nei rami di funzionalità. Il principale è che si tratta di un ripristino one-shot per ripristinare la funzionalità. –
Mille grazie per questa informazione utile. @ Cameron potresti spiegare perché non è raccomandato farlo? e posso "rappresentare" tutte le mie vecchie fusioni? (questo fondamentalmente perché ho bisogno di scrivere un rapporto sul mio progetto in modo che gli screenshot delle mie filiali siano utili) – Ansd
@Ans: Non lo consiglio semplicemente perché non ne ho mai trovato un uso. Preferisco mantenere la storia del "master" il più semplice e lineare possibile, e non ho mai avuto bisogno di preoccuparmi di un ramo di funzionalità una volta che è stato fuso. @Il punto di Ray su un ripristino one-shot è valido, tuttavia, quindi potrebbe essere una buona ragione per usare 'no-ff'. Probabilmente non sarai in grado di rigenerare facilmente la cronologia del tuo ramo, anche se se hai ancora tutti i vecchi rami, potresti creare manualmente un ramo che unisce tutte le funzionalità nello stesso ordine in cui le hai unite in 'master'. –