Est-ce que git combine les opérations rebase --onto et merge --squash ?
巴扎黑
巴扎黑 2017-05-02 09:30:48
0
1
702

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 ?

巴扎黑
巴扎黑

répondre à tous(1)
習慣沉默

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é :

git checkout client
git rebase master -i

ou

git checkout client
git reset --soft HEAD~2
git commit -m 'add client'
git checkout master
git cherry-pick client

Voyons si vous avez d'autres idées

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal