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 fetch
git pull
ed?
_/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.
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.
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".
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
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'
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.
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