Considérez les commits mis en évidence dans ce qui suit :
Pour la discussion actuelle, je ferai référence aux commits comme suit : Commit 1 : Lire les paramètres de langue dans les paramètres de l'utilisateur Commit 2 : [POC] Ne pas réviser
Nous utilisons Gerrit pour la révision du code. Le Commit 1 et le Commit 2 sont en cours de révision et n'ont pas été fusionnés. Je travaille sur le Commit 1 qui nécessite du code dans le Commit 2 et doit donc être basé sur celui-ci. Voici les commandes que j'ai utilisées :
-
Cherry Pick Commit 2. J'utilise la commande cherry-pick qui vient de Gerrit pour ce changement :
-
Faire les changements nécessaires à mon travail et pousser un changement qui est devenu Commit 1. Quand j'ai poussé Commit 1 pour la première fois, il était basé sur le patchset 8 de Commit 2.
Au fur et à mesure que je reçois des commentaires sur mon commit (Commit 1), je pousse de nouveaux ensembles de patchs pour celui-ci sur Gerrit. Cependant, lorsqu'il doit être fusionné, il doit être sur le dernier patchset de son parent (Commit 2). La façon dont je le fais maintenant est la suivante :
- git checkout working2
- git reset --hard remotes/origin/head
- Cherry-pick Commit 2 ---> Cela me donne la dernière version de Commit 2
- Cherry-pick Commit 1
- git push origin working2:refs/for/head
Existe-t-il un moyen d'obtenir le dernier patchset de Commit 2 sans faire tout ce qui précède ? Peut-être une sorte de "cherry pick" ou "rebase" interactif ?