Ho diversi rami. Sono master, sviluppo e diverse funzioni. La struttura è così:
master-> develop-> feature branches
quindi faccio tutto nei rami delle funzionalità, poi mi unisco al ramo di sviluppo e una volta terminato il programma, rilascio la versione finale unendo il ramo di sviluppo in master.
Il mio problema è quello indietro nella mia storia, iounito un ramo di funzionalità nel ramo principale invece del ramo di sviluppo. Come faccio a modificare l'unione, in modo che il ramo di fusione venga eseguito sullo sviluppo e non sul master.
risposte:
0 per risposta № 1Suppongo che sia OK per te riscrivere completamente la cronologia.
git branch rebase-from ffffff # 1st commit on master after the wrong merge
git branch last-good rebase-from^^ # commit before the wrong merge on master
git rebase --onto last-good rebase-from master
Ciò eliminerà quell'impegno di unione errato damaestro. Se si hanno tag sul vecchio master, continueranno a puntare ai commit originali dopo l'operazione, quindi il vecchio master potrebbe rimanere visibile fino all'ultimo tag su di esso. Se vuoi spostare anche i tag, devi comunicarlo molto bene a tutti quelli che hanno mai clonato il tuo repository. Leggi la DISCUSSIONE in git help tag
su questo argomento.
Leggere git help rebase
molto prima di iniziare.
Disclaimer: non sono responsabile per le riprese di te stesso o di chiunque altro nel piede.