Ich habe fetch
gefolgt von checkout
...
git fetch <remote> <rbranch>:<lbranch>
git checkout <lbranch>
... wo <rbranch>
sich der Remote-Zweig oder die Quellreferenz befindet und wo <lbranch>
sich der noch nicht vorhandene lokale Zweig oder die Zielreferenz befindet, die Sie verfolgen möchten und die Sie wahrscheinlich genauso benennen möchten wie der Remote-Zweig oder die Quellreferenz. Dies wird unter Optionen in der Erläuterung von erläutert <refspec>
.
Git ist so klug es automatisch den ersten Befehl , wenn ich abgeschlossen Register nach den ersten paar Buchstaben des entfernten Zweig. Das heißt, ich muss nicht einmal den lokalen Zweig benennen, Git kopiert automatisch den Namen des entfernten Zweigs für mich. Danke Git!
Wie die Antwort in diesem ähnlichen Beitrag zum Stapelüberlauf zeigt, können Sie den lokalen Zweig fetch
auch dann erstellen, wenn Sie ihn mit dem -b
Flag auschecken , wenn Sie ihn nicht benennen . Das heißt, git fetch <remote> <branch>
gefolgt von git checkout -b <branch> <remote>/<branch>
genau das Gleiche wie meine ursprüngliche Antwort. Und offenbar, wenn Ihr Repository hat nur eine Fernbedienung, dann kann man nur tun , git checkout <branch>
nach fetch
und es wird eine lokale Niederlassung für Sie erstellen. Sie haben beispielsweise gerade ein Repository geklont und möchten zusätzliche Zweige von der Fernbedienung auschecken.
Ich glaube, dass ein Teil der Dokumentation für fetch
wörtlich kopiert wurde pull
. Insbesondere auf den Abschnitt <refspec>
in Optionen ist gleich. Ich glaube jedoch nicht, dass dies fetch
jemals der Fall sein wird merge
, sodass Sie fetch
nichts tun sollten , wenn Sie die Zielseite des Doppelpunkts leer lassen .
HINWEIS: git fetch <remote> <refspec>
ist die Abkürzung für git fetch <remote> <refspec>:
welche wäre also nichts tun, sondern git fetch <remote> <tag>
ist das gleiche wie git fetch <remote> <tag>:<tag>
die die Fern kopieren soll <tag>
vor Ort.
Ich denke, dies ist nur hilfreich, wenn Sie einen Remote-Zweig lokal kopieren möchten, ihn aber nicht unbedingt sofort auschecken müssen. Andernfalls würde ich jetzt die akzeptierte Antwort verwenden , die im ersten Abschnitt der Checkout-Beschreibung und später im Optionsabschnitt unter der Erläuterung von ausführlich erläutert wird --track
, da es sich um einen Einzeiler handelt. Nun ... eine Art Einzeiler, weil man immer noch git fetch <remote>
zuerst laufen müsste .
Zu Ihrer Information: Die Reihenfolge der <refspecs>
(Quelle: Ziel) erklärt die bizarre Methode vor Git 1.7 zum Löschen entfernter Zweige . Das heißt, schieben Sie nichts in die Zielreferenz.