2016-10-13 1 views
3

Manchmal habe ich auf Artikel siehe Befehl: git pull -p
Aber ich glaube nicht, dass Informationen über official documentationWie git-pull corporate mit git-fetch (war: was bedeutet git-pull-option `-p`)?

Was bedeutet diese Option bedeutet gefunden?

UPD

Wie die -p Option von @torek festgestellt wird git fetch weitergegeben. Und -p bedeutet hier:

-p
--prune
Bevor holen, entfernen Sie alle Remote-Tracking-Referenzen, die nicht mehr auf der Fernbedienung vorhanden sind.

Aber ich verstehe nicht, wie git-pull Corporate mit git-fetch kooperieren?
Wie kann ich herausfinden, wie und welche git Optionen von einem Befehl zum anderen fallen?

+1

Der 'git pull' Befehl hat keine eigene' -p' Option. Was tatsächlich passiert, ist, dass "-p" zu "git fetch" weitergeleitet wird. Ich bin mir nicht sicher, wer das falsch gestellt hat: Es ist richtig, dass '-p' nicht korrekt dokumentiert ist (meiner Meinung nach ist' git pull' selbst nicht korrekt dokumentiert, aber 'git pull' sollte nicht einmal existieren :-)). – torek

+0

@torek Vielleicht diejenigen, die denken, dass '-p' für' --patch' steht und diese Frage als Duplikat markieren –

+0

@KevinB Nein, in dieser Frage, die Sie mit '-p' verbunden haben bedeutet' --patch' –

Antwort

2

Vielleicht sollte nun eine zweite Frage:

Aber ich verstehe nicht, wie Git-Pull-Firmen mit git-fetch? Wie kann ich herausfinden, wie und welche Git Optionen von einem Befehl zum anderen fallen?

(ich denke du meinst "co-operate" eher als "corporate" hier.)

Der git pull Befehl used to be a shell script. Im Skript ist es einfach zu erkennen, welche Optionen an git fetch übergeben werden, die an git merge oder git rebase übergeben werden und welche direkt verbraucht werden.

Ab der Git-Version 2.6.0 wurde der Pull-Befehl in C neu geschrieben.Es ist still possible to tell welche Optionen sind welche, aber es ist jetzt etwas schwieriger, da Sie weiter unten nach den Textschreibweisen jeder Option suchen müssen. (Diese zweite Verbindung kann im Laufe der Zeit zerfallen, wie es GitHub die aktuelle Version der Quelldatei nachschlagen hat, und die Zeilennummern ändern können.)

ich mir git pull vermeiden empfehlen: run git fetch, dann das Ergebnis überprüfen, dann wählen git rebase (normalerweise) oder git merge (manchmal) nach Bedarf. Ich behalte auch einen Alias, git mff, der auf git merge --ff-only expandiert, und ich neige dazu, git fetch && git mff laufen zu lassen: Wenn der Schnellvorlauf fehlschlägt, möchte ich wahrscheinlich umbasen, es sei denn, ich will zusammenführen, und diese Folge (fetch und merge-wenn-schnell -forwardable) ist entweder erfolgreich (in diesem Fall macht Rebase vs Merge keinen Unterschied und wir sind fertig) oder versagt (in diesem Fall ist es Zeit zu inspizieren).

(Es könnte ein Alias ​​Hinzufügen git fff wert sein, die git fetch && git mff läuft ... :-))


Dies kann ohne den Bindestrich als "kooperieren", geschrieben werden, oder sogar als " coöperate ", mit einem diaeresis über dem zweiten o. Die Diärese war im englischen Text im Kleingedruckten üblich (und The New Yorker still uses it!), Aber mit Schreibmaschinen, die nicht in der Lage waren, es zu produzieren, begann in den frühen bis Mitte der 1900er Jahre weniger üblich zu sein. Nun, da Computer Unicode und Umlaute haben - die technisch verschieden sind, aber symbolisch identisch sind - denke ich, dass wir die Diärese zur Präëminenz wiederherstellen sollten. :-)

+0

Dann ist alias durch 'flow feature finish' bei mine env :-D beschäftigt –

1

Ein git pull-Befehl ist ein shorthand-Befehl, der als "git fetch" plus einem Befehl "git merge FETCH_HEAD" interpretiert wird. Wenn Sie einem Pull den Befehl -p geben, wird der Befehl --prune mit dem Teil "git fetch" des Befehls ausgeführt. Dadurch werden alle Remote-Tracking-Zweige in Ihrem lokalen Repository gelöscht, die nicht mehr im Ursprung vorhanden sind.

+0

Ha. Jemand hat deine Frage bearbeitet, während ich sie beantwortet habe. :) Ich hoffe meine Antwort hilft noch, die 2 Teile des "Pull" -Befehls für Sie zu klären. – JGTaylor

+0

Trotz schlechter Formatierung ist Ihre Antwort nützlich. +1 ;-) –

0

Es scheint Antwort ist here

git-pull und git-fetch Ähnlichkeiten: sowohl Download verwendet werden neue Daten von einem Remote-Repository.

  • git-fetch wirklich lädt nur neue Daten von einer Remote-Repository
  • git-pull nicht nur neue Daten herunterlädt; es auch direkt integriert neue Daten in der aktuellen Arbeitskopie-Dateien (Download + merge)