84 votes

Signification de la métrique Github Ahead/Behind

En langage clair (avec un exemple simple, si possible), que signifient les métriques d'avance et de retard sur la branche d'un repo Github ?

Et quelles sont les implications pour cette branche et l'attention qu'elle reçoit ? Le fait d'être "à la traîne" est-il un mauvais signe pour une branche ?

97voto

rtomayko Points 426

Ahead est le nombre de commits sur cette branche qui n'existent pas sur la branche de base. Behind est le nombre de commits sur la branche de base qui n'existent pas sur cette branche.

L'avance et le retard sont presque comme une sorte de métrique de "l'âge". Le chiffre "ahead" vous indique approximativement l'impact que la branche aura sur la branche de base si elle est fusionnée. Le chiffre "behind" vous indique combien de travail a été effectué sur la branche de base depuis le début de cette branche.

Je trouve le nombre de derrière vraiment utile pour juger si une branche est susceptible de fusionner proprement. Quand beaucoup de travail a été fait sur la branche de base, il est plus probable que les deux branches ont modifié la ou les mêmes lignes. Lorsque le retard est important, c'est un signe que vous devriez probablement fusionner la branche de base dans cette branche pour vous synchroniser. Une fois que vous avez fusionné la branche de base dans cette branche, behind sera égal à 0.

91voto

Tekkub Points 8989

Si vous êtes plutôt du genre visuel, jetez un coup d'œil ici :

◈ - ◈ - A - ◈ - B
      \
        ◈ - C

A a 2 commits de retard et 0 commits d'avance sur B
B est 0 commits derrière et 2 commits devant A
C est 1 commit derrière et 2 commits devant A
C est 3 commits derrière et 2 commits devant B

Donc, "derrière" signifie que l'autre branche a des commits et que l'autre n'en a pas, et "devant" signifie que cette branche a des commits et que l'autre n'en a pas.

6voto

VonC Points 414372

Les mesures comme celles que vous pouvez voir pour ce projet décrire, comparer à une branche du repo (comme master ) :

  • le nombre de nouveaux commits que le repo GitHub a fait par rapport à une autre branche d'un autre repo : ce sont les derrière commits : l'autre repo est en retard par rapport au repo actuel (voir ces engagements ).
  • le nombre de nouveaux commits qu'une autre branche d'un autre repo a fait par rapport au repo actuel : ce sont les en avant commits : l'autre repo est en avance par rapport au repo actuel (voir ces engagements ).

Le détail technique est illustré par le script "déterminer quels dépôts sont en avance/en retard sur l'origine". :
Il s'agit de vérifier :

  • quels commits sont accessibles depuis une autre branche, mais pas depuis la branche locale : en avant
    git rev-list "$localref..$anotherref"
  • quels commits sont accessibles depuis la branche locale, mais pas depuis l'autre branche : derrière
    git rev-list "$anotherref..$localref"

3voto

Matjaz Muhic Points 1226

Une chose à noter est que le "derrière" de github compte également les commits de fusion. Vous pouvez vérifier le "behind" avec : git log mybranch1 ^mybranch2 et il devrait vous montrer le même nombre de commits. Si vous avez des commits de fusion, vous pouvez les exclure avec --no-merges dans la dernière commande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X