Sto usando il modo flusso git di gestire filiali nel mio repo, come descritto in: http://nvie.com/posts/a-successful-git-branching-model/git merge con --no-ff e --squash
Così la sequenza di comandi devo usare sarebbe come segue:
git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff mybranch
Tuttavia, c'è una cosa che mi piacerebbe fare in modo diverso, in alcuni casi:
vorrei conservare tutti i miei commit sul mio ramo di caratteristica (mybranch
), ma hanno loro raggruppati insieme (o schiacciati) dentro a un singolo diff quando si fondono in develop
.
Quindi questo è quello che penso la sequenza di comandi dovrebbe essere:
git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff --squash mybranch
sarei a fare cose sbagliate, se dovessi coniugare --no-ff
con --squash
?
sono riluttanti a provare questo deriva dal modo "schiacciamento" e "preservare la storia" sono requisiti ortogonali - vedi Squashing all of my commits (including merges) into one commit without altering history
La mia logica è che voglio conservare la storia su un ramo (mybranch
) e suqash su un altro ramo (develop
) -> perché queste azioni sono eseguite in rami separati, questo è OK.
Perché non basta provare. Puoi sempre fare un 'reset' difficile se non funziona. Basta fare un ramo temporaneo al posto vecchio. Vai avanti. Provalo. Sai che vuoi ... –