2011-10-29 9 views

Répondre

46

Essayez git fetch --dry-run Le manuel (git help fetch) dit:

--dry-run 
Show what would be done, without making any changes. 
+2

Merci! pour comprendre à partir de la sortie quels fichiers ont été ajoutés/modifiés/supprimés. –

+0

Vous obtenez de voir quelles balises sont mises à jour et la plage de début start..end pour les différentes branches. Si ce n'est pas suffisant, faites-le comme un fetch approprié (pas tiré) qui vous donnera une copie locale, distincte et appropriée de la télécommande, sans affecter votre propre travail de branche. Une traction tenterait de fusionner les deux, ce qui n'est pas ce que vous voulez. Le transfert de données est le même que vous exécutiez --dry-run ou non. –

0

Ceci est impossible. Comment pouvez-vous savoir si le référentiel est "à jour" sans aller dans le référentiel distant pour voir ce que signifie "à jour"?

+2

S'il vous plaît confirmer! Vous venez de répondre à ce que vous pensez! Vous devriez être plus prudent car les débutants vont tomber avec elle! –

+3

@AmanuelNega: Ceci est juste une logique de base. Si vous voulez savoir si votre dépôt local est dans le même état que le repo distant, vous devez connaître l'état du repo distant. Période. Si vous ne connaissez pas l'état du repo distant, vous ne pouvez pas savoir si le repo local est dans le même état. Notez que la réponse la plus haute votée et acceptée utilise 'git pull', que l'OP interdit explicitement dans sa question. –

+1

Soyez informé! 'git status -uno' cela fonctionne et on peut aussi utiliser' git show-branch * master' pour voir l'état de toutes les branches master! Êtes-vous toujours en train de dire que c'est impossible?Vous pouvez voir le statut de n'importe quelle branche tant que vous avez accès à la télécommande! –

5

Pas vraiment - mais je ne vois pas comment git fetch ferait mal car il ne changera aucune de vos branches locales.

2

Vous devez exécuter git fetch avant de pouvoir comparer votre référentiel local contre les fichiers sur votre serveur distant.

Cette commande met uniquement à jour vos branches de suivi à distance et n'affecte pas votre arborescence jusqu'à ce que vous appeliez git merge ou git pull.

Pour voir la différence entre votre succursale locale et votre branche de suivi à distance une fois que vous avez tiré par les cheveux que vous pouvez utiliser git diff or git cherry as explained here.

5

vous pouvez utiliser git status -uno pour vérifier si votre succursale locale est mise à jour avec une origine .

+3

Il donne seulement le statut local, ne vérifiant pas avec la branche distante. –

2

Une autre alternative est de voir l'état de la branche à distance en utilisant git show-branch remote/branch pour l'utiliser comme une comparaison, vous pouvez voir git show-branch *branch voir la branche dans toutes les télécommandes, ainsi que votre dépôt! consultez cette réponse pour plus https://stackoverflow.com/a/3278427/2711378

1

Vous devez émettre deux commandes:

  1. git fetch origine
  2. git status
0

Utilisez

git pull 

Si votre branche est à jour, vous recevrez le message suivant:

"Déjà à jour."

2
git remote show origin 

Résultat:

HEAD branch: master 
    Remote branch: 
    master tracked 
    Local branch configured for 'git pull': 
    master merges with remote master 
    Local ref configured for 'git push': 
    master pushes to master (local out of date) <------- 
Questions connexes