Non sono molto esperto con Git e ora ho un grosso problema nelle mie ginocchia.Annullare una git merge
Ecco come il mio ramo corrente assomigliare:
feature /---F1-----F2----\
/ \
master -----M0-----M1-----M2-----M3-----M4
\ /
bugfix \--B1-----B2-----------/
La situazione:
qualcuno ha fatto una cosa molto brutta e spinto una pessima merge (M3). Ho notato solo l'unione errata quando i nostri modelli (non il codice sorgente) non venivano caricati dopo aver unito B1 e B2 in M4. Fortunatamente, non ho ancora spinto l'M4.
Il problema:
Come faccio a impostare le cose a posto? Voglio M0, M1, M2, F1, F2, B1 e B2. Ma non voglio M3 e M4 (poiché M4 è ovviamente rotto). Se io devo ad abbandonare le modifiche, quindi F1 e F2 può essere sacrificato :)
ho guardato git revert
ma io non sono sicuro che capisco benissimo come funziona. Quindi ... spero davvero in aiuto su come risolvere questo problema.
Grazie in anticipo.
Sì, una specie di, ma "funzionalità", "master" e "bugfix" non sono in realtà diramazioni, sospetto che ciò sia confuso. Cioè, 3 ppl si è impegnato con le proprie modifiche del ramo principale. Un ragazzo ha fatto una brutta fusione e ha spinto. Ho tirato la brutta fusione. Ora voglio un modo per escludere l'unione errata pur mantenendo tutte le singole modifiche ... – aberrant80
Quindi 'feature' e' bugfix' non sono diramazioni? Sicuramente l'autore di 'feature' ha un ramo nel proprio repository. Quello che dovresti fare è resettare il tuo master su M2 e chiedere all'autore di 'feature' di fare lo stesso (ma assicurati che non perda la funzione' del ramo ') e rifare l'unione, correttamente questa volta. Vedi il mio aggiornamento se vuoi farlo tu stesso. – Gauthier
Avete davvero un repository senza un ramo 'master'? – Gauthier