web-dev-qa-db-fra.com

Comment puis-je voir les commits entrants dans git?

Dupliquer possible:
À l'aide de Git, comment trouver des fichiers modifiés entre le local et le distant

Comment puis-je voir les commits entrants dans git? Ou mieux encore, voyez ce que je viens de git fetchgit pulled?

_/Edit: Pour clarifier la question: quelqu'un me dit que pour obtenir des correctifs, je devrais extraire de leur référentiel. Mon but est de voir quels sont leurs changements avant Je les accepte. git pull fusionne automatiquement, ce qui n'est pas ce que je veux. git fetch les récupérera sans les fusionner, mais je ne sais pas comment afficher ce que je viens d'extraire. La raison du libellé d'origine est que j'utilise normalement Mercurial, où la commande serait hg incoming <repo name here> - une commande pour laquelle git semble manquer un analogue.

148
Benjamin Pollack

incoming n'est pas un mappage direct dans git car vous pouvez (et c'est souvent le cas) avoir plusieurs dépôts que vous extrayez, et chaque dépôt a plusieurs branches.

S'il y avait un équivalent de la commande entrante de hg, ce serait probablement ceci:

git fetch && git log ..Origin/master

C’est-à-dire "allez récupérer tout ce qui se trouve en amont, puis comparez ma branche actuelle à la branche principale en amont".

De même, sortant serait ceci:

git fetch && git log Origin/master..

En pratique, je saisis simplement ceux-ci manuellement (même si j’ai créé un alias pour l’un d’eux) car il est facile d’avoir de nombreuses succursales locales suivies et surveillées par de nombreuses succursales distantes sans difficulté à les conserver.

165
Dustin

Vous pouvez également être intéressé par git whatchanged qui donne un bon aperçu des modifications apportées à certains types de commits.

Si vous souhaitez vérifier ce que vous êtes sur le point d'extraire, effectuez d'abord un git fetch, qui ne met à jour que les branches de suivi locales du référentiel distant (et non aucune des branches vos), puis utilisez n'importe quelle commande affichant nouveaux commits que vous êtes sur le point de tirer. Par exemple:

git whatchanged ..Origin

Ceci est un raccourci pour montrer les commits entre "l'ancêtre commun d'où que je sois maintenant et l'origine" à travers "l'origine".

83
Greg Hewgill

Vous voudrez peut-être examiner la différence entre deux référentiels. En supposant que vous ayez un «maître» de branche locale et une branche de suivi à distance «Origine/maître», où d'autres personnes valident leur code, vous pouvez obtenir des statistiques différentes sur les différences entre les deux branches:

git diff --summary master Origin/master

git diff --stat master Origin/master

git diff --numstat master Origin/master

git diff --dirstat master Origin/master

git diff --shortstat master Origin/master

git diff --name-only master Origin/master

git diff master Origin/master
11
Netzpirat

Lorsque quelqu'un vous dit de tirer, il vous donne l'URL du dépôt et une branche (par défaut, master).

Je ferais juste

git fetch URL branch

suivi d'un (par ordre de préférence décroissant):

# note 3 dots in next 3 commands
gitk HEAD...FETCH_HEAD
    # shows all commits on both sides since the "fork" point
gitk --cherry-pick HEAD...FETCH_HEAD
    # as above but skips identical patches so you really see the differences
git log --graph --boundary --left-right --cherry-pick --decorate HEAD...FETCH_HEAD
    # I have a Nice alias for this; it's the text mode eqvt of the above

J'utilise aussi parfois "tig", mais ce cas d'utilisation spécifique (voir les deux côtés) n'est pas bien servi par tig.

Cependant, si vous le réduisez à deux points (ce qui peut correspondre plus précisément à votre question, même si je préfère les versions à 3 points), vous pouvez le faire.

tig HEAD..FETCH_HEAD

Voici les alias pour plus de commodité:

incoming = !sh -c 'git fetch && git log --graph --boundary --left-right --cherry-pick --decorate HEAD..FETCH_HEAD'
outgoing = !sh -c 'git fetch && git log --graph --boundary --left-right --cherry-pick --decorate FETCH_HEAD..HEAD'
6
Sitaram

Il n’existe pas de «commits entrants» que les utilisateurs commettent localement et qui les envoient. Je voudrais ouvrir Gitx ou Gitk (qui vient avec Git) et vérifier à quoi ressemble le dépôt ... Je pense que cela vous donnera une vue claire.

utilisez: gitk --all pour voir.

1
JP Silvashy

Jetez un oeil à cet article . Il vous montre l'utilisation d'une nouvelle fonctionnalité introduite dans la version 1.7 de Git Utilisation de Git, comment trouver les modifications entre local et distant

0
prosieges