Original :
A---B---C(master)
/
D---E---F---G(server)
/
H---I(client)
H, je suis branché de la branche serveur, mais je ne dépends pas du serveur. Le client est terminé, je veux extraire H, je le fusionne séparément dans le maître, donc j'exécute git rebase --onto master server client
et le. le résultat est :
A---B---C(master)---H---I(client)
/
D---E---F---G(server)
/
H---I
PS : Ne trouvez pas l'exemple étrange, il vient de https://git-scm.com/book/en/v2/Git-Branching-Rebasing#More-Interesting-Rebases
Ce qui précède est l'opération de rebase, en utilisant l'opération de fusion, exécutez git merge --squash client master; git commit
, le résultat est :
A---B---C(master)---J(D+H+I)
/
D---E---F---G(server)
/
H---I(client)
Alors la question est :
Y a-t-il une opération similaire à git merge --squash server...client master
ou git rebase --onto master server client --squash
L'effet est le suivant :
A---B---C(master)---J(H+I)
/
D---E---F---G(server)
/
H---I(client)
PS : je sais que vous pouvez d'abord rebaser --onto sur la branche temporaire, puis fusionner --squash avec master, mais c'est trop inélégant, n'est-ce pas ?
Il y a déjà une réponse. Il est préférable d'utiliser rebase --interactive pour marquer la courge, mais j'ai oublié :
ou
Voyons si vous avez d'autres idées