Come faccio a separare un commit in un ramo dopo aver fatto diversi altri commit?
Domanda
Ho un repository Git con la seguente struttura:
A--B--C--D--E
mi piacerebbe separare il C commettere in un ramo:
C
/ \
A--B---D--E
Come faccio a farlo?
Soluzione
git branch new-branch C
creerà un nuovo ramo che punta al C
chiamato new-branch
, finendo con questo:
new-branch HEAD
| |
A -> B -> C -> D -> E
Altri suggerimenti
La risposta corretta è quello di onorare il fatto che D ha 2 genitori in uscita che si desidera. Ho intenzione di assumere E viene puntato da maestro.
git branch new-branch C
git checkout -b merge-base B
git merge --no-ff new-branch
git rebase --onto merge-base D^ master
git checkout master
si finirà con questo:
C
/ \
A--B---Y--D'--E'
questo preserverà C come un genitore in una fusione nel ramo principale. Si potrebbe schiacciare D in Y con git rebase -i testa ^^^. Si potrebbe quindi avere:
C
/ \
A--B---D''--E''
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow