Ein lokaler git Zweig kann einen Remote-Zweig verfolgen, was bedeutet, dass git push und Git-Pull-Befehle werden wissen, standardmäßig und von dem verfolgten Zweig zu schieben und zu ziehen verpflichtet. Der git-Status zeigt außerdem den Status zwischen Ihrer aktuellen lokalen Zweigstelle und der entfernten Zweigstelle an, die verfolgt wird. Wenn Sie ein Git-Repository klonen, fügt Git dem lokalen Master-Zweig einen Tracking-Verweis hinzu, um den Remote-Master-Zweig zu verfolgen. Wenn Sie aus einer neuen Remote-Zweigstelle auschecken, fügt git der erstellten lokalen Zweigstelle eine Verfolgungsreferenz hinzu, um die entfernte Zweigstelle zu verfolgen, die Sie ausgecheckt haben.
Wenn Sie jedoch einen neuen Zweig lokal erstellen und ihn dann an das Remote-Repository senden, müssen Sie git explizit mitteilen, ob der lokale Zweig die Verfolgung des neuen Remote-Zweiges starten soll. Verwenden Sie dazu die Option -u
oder --set-upstream
, wenn Sie den lokalen Zweig an das Remote-Repository senden: git push -u origin my-new-branch
.
Mit dem Befehl git branch -vv
können Sie überprüfen, welche Remote-Zweige Ihre lokalen Niederlassungen verfolgen (falls vorhanden). Unten sehen Sie ein kleines Beispiel für die Ausgabe.
b1 560eb64 Added file.txt
b2 560eb64 [origin/b2] Added file.txt
b3 b638c18 [origin/r1: ahead 1] Added file3.txt
* master 560eb64 [origin/master] Added file.txt
In diesem Fall haben wir Ortsvereine master
, b1
, b2
und b3
. Der master
Zweig einen entfernten Zweig master
, der b1
Zweig genannt wird Tracking alle Remote-Zweige nicht Tracking, der b2
Zweig verfolgt ein entfernter Zweig genannt b2
und der b3
Zweig ist ein Remote-Zweig genannt r1
Tracking. git branch -vv
zeigt auch den Status des Zweigs an, der sich auf den verfolgten Zweig bezieht. Hier ist die Verzweigung b3
1 Commit vor der verfolgten entfernten Verzweigung und die anderen Verzweigungen sind mit ihren jeweiligen remote verfolgten Verzweigungen auf dem neuesten Stand.
Wenn Sie also eine lokale Verzweigung erstellen und an das Remote-Repository senden, möchten Sie der Verzweigung eine Verfolgungsreferenz hinzufügen oder nicht? Wenn Sie einen neuen lokalen Zweig an das Remote-Repository senden, können Sie normalerweise mit anderen Entwicklern an einem Feature zusammenarbeiten. Wenn Sie Ihrer lokalen Zweigstelle eine Verfolgungsreferenz hinzufügen, können Sie die Änderungen, die andere Personen vorgenommen haben, bequem in die Verzweigung übernehmen. Daher würde ich sagen, dass Sie in den meisten Fällen die Verfolgungsreferenz hinzufügen möchten.
Siehe push -u für die Schaufel. – bmargulies
Wenn ich die git man-Seiten für push, pull und config richtig verstehe, handelt es sich bei einer Tracking-Referenz um eine Einstellung oder Einstellungen, die der config-Datei hinzugefügt werden und von arg-less git-pull verwendet werden, um zu bestimmen, was heruntergezogen werden soll. Ich finde die Dokumentation ein wenig verwirrend, aber ich nehme an, dass die Tracking-Referenz eine Kombination der folgenden Einstellungen in der Konfigurationsdatei ist: remote. .fetch und Zweig. .merge. Ist das korrekt? –