/ / Come cambio il ramo in cui sono stato inserito nel mio commit precedente? - git, version-control, merge

Come posso cambiare il ramo in cui sono stato inserito nel mio commit precedente? - git, version-control, merge

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 № 1

Suppongo 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.