Comment voir qui s'engage dans une direction générale ne sont pas dans l'autre?
J'ai deux branches devel
et next
. Dans devel j'ai plus ou moins énorme quantité de commits. Certains s'engage sont la cerise cueillies dans next
. Aussi, j'ai ajouté quelques engage pour la suivante, ce qui sont fusionnés pour devel
.
Maintenant, je voudrais voir ce qui est manquant dans next
, afin que je puisse tester les modifications en détail avant de les apporter à next
. Ma question est maintenant, comment puis-je voir les commits sont en devel
mais pas dans le prochain?
- Peut-être liés: à l'Aide de Git, montrer à tous les commits qui sont dans une branche, mais pas dans l'autre(s).
- votre titre est un peu trompeur, car ce que vous souhaitez comparer est l'extrémité des deux branches. et je suis venu ici à la recherche d'une solution à deux de comparer spécifique (différent) s'engage de deux branches
- En double?: stackoverflow.com/questions/1710894/...
Vous devez vous connecter pour publier un commentaire.
Peu utilisé la commande
git cherry
vous montre les commits qui n'ont pas encore été cerise cueillies. La documentation pourgit cherry
est ici, mais, en bref, vous devez juste être capable de faire:... et voir le résultat un peu comme ceci:
Les commits qui commencent par
+
seront ceux que vous n'avez pas encore cerises cueillies dansnext
. Dans ce cas, je n'avais cerise cueillies à un commit jusqu'à présent. Vous pouvez ajouter la-v
paramètre à lagit cherry
de commande, de sorte qu'il génère également la ligne d'objet de chaque commit.git checkout devel
, il vous suffit de fairegit cherry next devel
.-v
”? Cerise sans-v
est commels
sans-la
. ;-Jcherry
de marque ou d'exclure l'équivalent s'engage, le feriez-vous?cherry
semble comme une plomberie de commande, mais n'a pas (semble) offrent de nombreuses options. Pour ce que je suis actuellement dans le milieu de l',git cherry
me donne des faux positifs, mais @sehe degit log --cherry-pick
correctement exclut précédemment choisi/relocalisée s'engage.Aussi, vous pouvez utiliser
pour obtenir une belle liste de réelle différents s'engage à ne pas partagée entre les branches.
Le mot est
--cherry-pick
Mise à jour Comme mentionné dans un commentaire, les dernières versions de git ajouté
--cherry-mark
:cherry-mark
trop ces jours-ci. Il a été un ajout récent. (Mentionné dans la réponse)Vous pourriez peut essayer de faire la commande git log sous-ensembles:
--left-only
aurait été mieux). Toutefois, celui-ci peut être améliorée par l'ajout de--no-merges
à supprimer toute fusion s'engage (par exemple, si une fonction ou un correctif de la branche a été fusionné (séparément) dans les deux devel et la prochaine). Strictement parlant, bien sûr, la résolution des conflits dans les fusions peuvent créer d'autres différences, mais qui n'est généralement pas le cas. Le--no-merges
option peut être utilement appliquée à d'autres réponses que de bien.Comment sur
Résultat est similaire à Byran de réponse (de l'ordre de commits), mais deux de nos réponses produire des commits qui sont différents entre les branches, au lieu de simplement montrer ce qui est dans une direction et pas dans l'autre.
git log next..
Pour obtenir la liste des commits qui n'ont pas été intégrées dans la branche de version (à côté), vous pouvez utiliser:
Vérifier git-rev-liste pour plus d'info.
next...devel