J'ai une branche locale qui suit la branche distante / principale. Après avoir exécuté git-pull
et git-log
, le journal affichera toutes les validations dans la branche de suivi à distance ainsi que la branche actuelle. Cependant, comme il y a eu tellement de modifications apportées à la branche distante, j'ai besoin de voir uniquement les validations apportées à la branche locale actuelle.
Quelle serait la commande Git à utiliser pour afficher uniquement les validations pour une branche spécifique?
Remarques:
Informations de configuration:
[branch "my-branch"]
remote = origin
merge = refs/heads/master
la source
git log --no-merges master..
était exactement ce dont j'avais besoin.--no-merges
peut apparaître qu'il ne montre que les validations d'une branche spécifique, mais il ne montre vraiment que lesgit log --no-merges --pretty='%C(yellow)%h%d %Creset%an %Cgreen%ar:%Creset %s' --graph master..
Utilisation:
C'est seulement pour la branche cible (bien sûr --graph, --abbrev-commit --decorate sont plus polis).
L'option clé est
--first-parent
: "Suivre uniquement le premier commit parent en voyant un commit de fusion" ( https://git-scm.com/docs/git-log )Il empêche l'affichage des fourches de validation.
la source
--first-parent <branch_name>
est l'option. travaux !--first-parent <branch_name>
aussi travaillé pour moi! Je me suis retrouvé avec un alias pourgit log --first-parent $current_branch_name --no-merges
. En réponse à @EdRandall, il affichera les commits sur la branche + ceux d'où il a été ramifié. Par exemple:new_feature
du maître. Vous y ajoutez les commits C et D. Ensuite, vous ajoutez E et F au maître. Vous fusionnez ensuite le maître avecnew_feature
. En utilisantgit log
surnew_feature
, vous verrez "fusionner le maître", F, E, D, C, A, B. En utilisantgit log --first-parent new_feature --no-merges
, vous verrez D, C, A, B.Si vous souhaitez uniquement les validations effectuées par vous dans une branche particulière, utilisez la commande ci-dessous.
la source
Le problème que j'avais, qui je pense est similaire à cela, est que le maître était trop en avance sur mon point de branchement pour que l'histoire soit utile. (La navigation vers le point de branchement prendrait trop de temps.)
Après quelques essais et erreurs, cela m'a donné à peu près ce que je voulais:
la source
il suffit de courir
git log origin/$BRANCH_NAME
la source