278 votes

Comment vérifier les changements sur un dépôt Git distant (origine) ?

Quelles sont les commandes Git pour réaliser le flux de travail suivant ?

Scénario

J'ai cloné à partir d'un dépôt et j'ai fait quelques modifications de mon propre chef dans mon dépôt local. Pendant ce temps, mes collègues ont fait des commits sur le dépôt distant. Maintenant, je veux :

  1. Vérifiez s'il y a de nouveaux commits d'autres personnes sur le dépôt distant, c'est-à-dire origin ?

  2. Disons qu'il y a eu trois nouveaux commits sur le dépôt distant depuis mon dernier pull, je voudrais différencier les les commits du dépôt distant, c'est-à-dire HEAD~3 con HEAD~2 , HEAD~2 avec HEAD~1 y HEAD~1 con HEAD .

  3. Après avoir su ce qui a changé à distance, je veux obtenir les derniers commits des autres.

Mes conclusions jusqu'à présent

Pour l'étape 2 : je connais la notation caret. HEAD^ , HEAD^^ etc. et la notation tilde HEAD~2 , HEAD~3 etc.

Pour l'étape 3 : C'est, je suppose, juste un git pull .

3 votes

0 votes

@Daniele la réponse que vous mettez en lien est superbe et s'accompagne même d'un bash script personnalisable. +1

269voto

Alan Haggai Alavi Points 34260

Vous pourriez git fetch origin pour mettre à jour la branche distante dans votre référentiel pour pointer vers la dernière version. Pour une comparaison avec la branche distante :

git diff origin/master

Oui, vous pouvez également utiliser la notation par caret.

Si vous voulez accepter les changements à distance :

git merge origin/master

37 votes

Le différentiel semble inversé. Je trouve plus facile d'utiliser git diff HEAD origin/master donc le diff montre ce qui sera appliqué si j'accepte les changements à distance.

2 votes

"git fetch origin" et "git show-branch *master" m'ont été utiles.

165voto

Rajani Karuturi Points 819
git remote update && git status 

J'ai trouvé ceci sur le réponse a Vérifier si un pull est nécessaire dans Git

git remote update pour mettre à jour vos arbitres à distance. Ensuite, vous pouvez faire l'une des nombreuses choses suivantes :

  1. git status -uno vous indiquera si la branche que vous suivez est en avance, en retard ou a divergé. S'il ne dit rien, le local et le distant sont les mêmes.

  2. git show-branch *master vous montrera les commits dans toutes les branches dont le nom se termine par master (par exemple master et origin/master).

Si vous utilisez -v con git remote update vous pouvez voir quelles branches ont été mises à jour, donc vous n'avez pas vraiment besoin d'autres commandes.

0 votes

Pas assez. Je dois faire un git pull <remote> <branch> après dès que j'ai besoin de pousser, parce que la pointe de ma branche locale était en retard sur la contrepartie distante.

4 votes

@Overdrivr la question demande un moyen de vérifier les changements avant de recevoir les commits dans la branche locale. donc, oui, vous devez mettre à jour votre branche locale après avoir vérifié les changements.

0 votes

S'agit-il de l'origine ou de l'amont ?

36voto

jag Points 373

Une bonne façon d'avoir une vue synthétique de ce qui se passe "à l'origine" :

git remote show origin

11 votes

Mais cette commande ne me montre pas combien de commits il y a eu sur "origin" depuis mon dernier pull, n'est-ce pas ? D'après ce que j'ai compris, "git remote show origin" est une opération locale et ne va pas chercher l'information sur le réseau.

1 votes

Le résultat ne contient pas de des informations sur le contenu de la télécommande.

31voto

Paul 501 Points 29

J'utilise juste

git remote update
git status

Ce dernier indique alors le nombre de commits derrière mon local (s'il y en a).

Puis

git pull origin master

pour mettre à jour mon local :)

19voto

iceCode Points 191

Ma question habituelle est plutôt "quelque chose de nouveau ou de modifié dans le repo" donc ce qui a changé est pratique. Je l'ai trouvé aquí .

git whatchanged origin/master -n 1

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