I have 2 branches, master
& feature
. Il Maestro occasionalmente riceve piccole modifiche necessarie per andare rapidamente a vivere. Una volta apportate queste modifiche, master
viene ridefinito in feature
in modo che la funzionalità sia aggiornata.Rimuovere i commit duplicati introdotti dopo una cattiva rebase
I file modificati su master in genere non sono correlati alla maggior parte dello sviluppo su feature
ma ho riscontrato un numero elevato di complicati conflitti di unione in 3 modi.
Dopo aver esaminato il registro di commit di feature
, ho riscontrato che il problema è costituito da diversi duplicati e sto tentando di risolverlo con un rebase interattivo.
La mia domanda è:
È questo la migliore soluzione per il problema, e se così posso solo rilasciare i duplicati ed essenzialmente costruire la storia di come mi aspetto che guardare? Anche quali duplicati dovrei cadere, più in alto (originale più vecchio) o più basso (duplicati più recenti).
astratta lista tratto da git rebase master -i
:
pick 0eb277c Commit A
pick ced2556 Commit B
pick 640e049 Commit C
pick b248ff7 Commit D
pick 9903094 Commit E
pick ebc279d Commit A
pick 313385b Commit F
pick 0d55178 Commit G
pick c8f09f9 Commit H
pick e877be3 Commit I
pick 9859aa0 Commit J
pick c3c8e0f Commit K
pick 8abc68c Commit L
pick 84a5c89 Commit A
pick 30570e4 Commit B
pick 937ff2f Commit C
pick 8e6d911 Commit D
pick 1dd3a09 Commit E
pick fe79288 Commit F
pick 9e790bb Commit G
pick 0924916 Commit H
pick 90d59d7 Commit I
pick ba06c55 Commit J
pick 7452fad Commit K ** Dupes end here** and features then has 30+ more commits.
pick d1dca3d Commit M
pick 6c85f76 Commit N
pick ad53b78 Commit O
pick f166471 Commit P
Puoi usare 'git rebase -i HEAD ~ x' sostituisci' x' con qualsiasi numero di commit che vuoi guardare dall'alto in basso e.g 'git rebase -i HEAD ~ 3' questo ti darà tre ultimi commit. È quindi possibile selezionare quali commit si desidera conservare e quali si desidera eliminare. –
I commit 0eb277c e ebc279d sono contrassegnati come commit A, ma ovviamente i loro sha1 sono diversi, quindi quelli sono commit diversi. In realtà non vedo alcun commit duplicato nell'elenco sha1. – Frodon
Intendo il duplicato liberamente, i messaggi di commit sono gli stessi e il codice che viene applicato è lo stesso. Ma è duplicato e salvato come un nuovo commit. – Kiee