2016-10-13 6 views
3

Parfois je vois des articles à la commande suivante: git pull -p
Mais je ne trouve plus sur que dans official documentationComment git-pull corporate avec git-fetch (était: que veut dire git-pull l'option `-p`)?

Qu'est-ce que cette option signifie?

UPD

Comme l'a noté @torek l'option -p est passé à git fetch. Et -p signifie ici:

-p
--prune
avant de récupérer, supprimer toute référence de suivi à distance qui n'existent plus sur la télécommande.

Mais je ne comprends pas comment entreprise git-pull coopérer avec git-fetch?
Comment puis-je savoir comment et quelles options git passent d'une commande à l'autre?

+1

La commande 'git pull' n'a pas sa propre option' -p'. Ce qui se passe réellement, c'est que '-p' est passé à' git fetch'. Je ne sais pas qui a downvoted ceci: il est vrai que '-p' n'est pas documenté correctement (à mon avis,' git pull' n'est pas documenté correctement, mais 'git pull' ne devrait même pas exister :-)). – torek

+0

@torek Peut-être que ceux qui pensent que '-p' représente' --patch' et marquent cette question comme doublon –

+0

@KevinB Non, dans cette question vous avez lié à '-p' signifie' --patch' –

Répondre

2

Peut-être que cela devrait être une deuxième question maintenant:

Mais je ne comprends pas comment l'entreprise-pull git avec git-fetch? Comment je peux comprendre comment et quelles options git passent d'une commande à l'autre?

(je pense que vous voulez dire "co-operate" plutôt que "corporate" ici.)

La commande git pullused to be a shell script. Dans le script, il est facile de dire quelles options sont passées à git fetch, qui sont passées à git merge ou git rebase, et qui sont consommées directement.

A partir de la version 2.6.0 de Git, la commande pull a été réécrite en C.C'est still possible to tell quelles sont les options qui sont, mais c'est maintenant un peu plus difficile car vous devez regarder plus bas pour trouver l'orthographe du texte de chaque option. (Ce second lien peut se désintégrer au fil du temps car il a GitHub regarder la version actuelle du fichier source, et les numéros de ligne peut changer.)

Je me recommande d'éviter git pull: courir git fetch, puis vérifier le résultat, puis choisissez git rebase (habituellement) ou git merge (parfois) selon les besoins. Je garde également un alias, git mff, qui s'étend à git merge --ff-only, et j'ai tendance à exécuter git fetch && git mff: si l'avance rapide échoue, je veux probablement rebaser, sauf si je veux fusionner, et cette séquence (aller chercher et fusionner-si-rapide -forwardable) réussit (dans ce cas, rebaser vs fusionner ne fait aucune différence et nous avons terminé) ou échoue (auquel cas il est temps d'inspecter).

(Il pourrait être intéressant d'ajouter un alias git fff qui fonctionne git fetch && git mff ... :-))


Cela peut être écrit comme "coopérer", sans le trait d'union, ou même " coöperate ", avec un diaeresis au-dessus du deuxième o. La diaeresis était commune dans le texte anglais dans l'impression fine (et The New Yorker still uses it!), Mais avec des machines à écrire incapables de le produire, a commencé à être moins commun dans le début au milieu des années 1900. Maintenant que les ordinateurs ont Unicode et les trémas - qui sont techniquement différents, mais symboliquement identiques - je pense que nous devrions restaurer la diaeresis à la prédominance. :-)

+0

Que l'alias est occupé par 'la fonction de fin de flux' à la mienne env :-D –

1

Une commande git pull est une commande abrégée qui est interprétée comme une commande "git fetch" plus une commande "git merge FETCH_HEAD". Si vous donnez un drapeau -p à un pull, c'est en fait la commande --prune qui s'exécute avec la partie "git fetch" de la commande. Cela supprime (élague) toutes les branches de suivi à distance de votre référentiel local qui n'existent plus à l'origine.

+0

Ha. Quelqu'un a édité votre question pendant que j'y répondais. :) J'espère que ma réponse aidera à clarifier les 2 parties de la commande "pull" pour vous? – JGTaylor

+0

Malgré une mauvaise mise en forme, votre réponse est utile. +1 ;-) –

0

Il semble réponse est here

git-pull et git-fetch similitudes: les deux sont utilisés pour téléchargement nouvelles données à partir d'un dépôt distant.

  • git-fetch télécharge vraiment que de nouvelles données à partir d'un dépôt distant
  • git-pull télécharge non seulement de nouvelles données; elle aussi directement intègre de nouvelles données dans vos fichiers de la copie de travail (téléchargement + fusion)