2010-03-18 3 views
3

J'essaie de comparer ma copie de 'master' à celle du référentiel distant qu'elle suit. Je pensais que la commande suivante fonctionnerait, et souvent il semble. Cependant, parfois il ne produit rien et pourtant je sais que la branche distante a beaucoup de changements, que je peux confirmer en tirant.git: 'log master..origin/master' ne se comporte pas comme prévu

git log master..origin/master 

Quelqu'un peut-il expliquer ce comportement et dites-moi ce que je commande utiliserai pour déterminer les changements entre les locaux et distants?

[Une autre donnée: j'ai vu que 'git log master..origin/master' ne produit rien. Ensuite, je fais une traction. La traction échoue parce que j'ai une copie de travail d'un fichier. Après cela, 'git log master..origin/master' ne montrez-moi les différences. Il semble que la traction a mis à jour un journal local? Si oui, comment pourrais-je y parvenir sans faire (ou essayer de faire) une traction?]

Répondre

3

Ceci est parce que origin/master est une branche distante dans votre référentiel. Il représente où la branche principale de l'origine a été la dernière fois que vous avez "regardé" (récupérée, qui fait partie de la mise à jour pull et remote).

Lorsque vous tirez, l'extraction est effectuée et origin/master est mis à jour. Ensuite, effectuez une fusion des appels, qui peut échouer ou non, mais cela n'a aucun effet sur vos branches distantes. Vous pouvez également utiliser git fetch --all ou git fetch origin pour obtenir ces mises à jour.

1

Il ne vous montrer quelques différences si vous avez fait chercher quelque chose d'origine (aux références locales d'origine dans votre repo local).

C'est la raison pour laquelle vous voyez une différence après même un échec git pull:

  • il récupère d'abord
  • ensuite tenter de fusionner (et échouent)

, mais cela suffit pour la git log pour extraire les informations dont vous avez besoin, car elles sont sur votre dépôt local (après la partie)

Questions connexes