Das Remote-Repository enthält verschiedene Zweige wie z origin/daves_branch
:
$ git branch -r
origin/HEAD -> origin/master
origin/daves_branch
origin/master
Wie wechsle ich zu daves_branch
im lokalen Repository, damit es nachverfolgt wird origin/daves_branch
?
Ich habe es versucht:
$ git fetch origin daves_branch
$ git checkout daves_branch
Ich habe benutzt fetch
gefolgt von checkout
…
git fetch <remote> <rbranch>:<lbranch>
git checkout <lbranch>
…Wo <rbranch>
ist die Remote-Zweigstelle oder Quelle ref Und <lbranch>
ist das noch nicht existent Ortsverband bzw Ziel-Ref Sie verfolgen möchten und die Sie wahrscheinlich genauso benennen möchten wie den Remote-Zweig oder die Quellreferenz. Dies wird unter erläutert Optionen in der Erklärung von <refspec>
.
Bash ist so schlau, dass es den ersten Befehl automatisch vervollständigt, wenn ich Tab nach den ersten paar Buchstaben des Remote-Zweigs. Das heißt, ich muss nicht einmal die örtliche Niederlassung nennen; Bash kopiert automatisch den Namen des entfernten Zweigs für mich. Danke, Basch!
Auch wie die Antwort in diesem ähnlichen Stack Overflow-Beitrag zeigt, wenn Sie die lokale Verzweigung nicht benennen fetch
können Sie es immer noch erstellen, wenn Sie es auschecken, indem Sie die verwenden -b
Flagge. Das ist, git fetch <remote> <branch>
gefolgt von git checkout -b <branch> <remote>/<branch>
macht genau das gleiche wie meine erste Antwort. Und offensichtlich, wenn Ihr Repository hat einziger Fernbedienung, dann können Sie einfach tun git checkout <branch>
nach fetch
und es wird eine lokale Verzweigung für Sie erstellt. Zum Beispiel, Sie haben gerade ein Repository geklont und möchten zusätzliche Zweige von der Fernbedienung auschecken.
Ich glaube, dass einige der Dokumentation für fetch
möglicherweise wörtlich übernommen pull
. Insbesondere der Abschnitt über <refspec>
In Optionen ist dasselbe. Allerdings glaube ich das nicht fetch
wird immer merge
sodass, wenn Sie die Zielseite des Doppelpunkts leer lassen, fetch
sollte nichts machen.
NOTIZ: git fetch <remote> <refspec>
Kurzform für git fetch <remote> <refspec>:
das würde also nichts bringen, aber git fetch <remote> <tag>
ist das gleiche wie git fetch <remote> <tag>:<tag>
die die Fernbedienung kopieren sollte <tag>
örtlich.
Ich denke, das ist nur hilfreich, wenn Sie einen Remote-Zweig lokal kopieren, aber nicht unbedingt sofort auschecken möchten. Ansonsten würde ich jetzt die akzeptierte Antwort verwenden, die im ersten Abschnitt ausführlich erläutert wird Checkout-Beschreibung und später im Optionen Abschnitt unter der Erklärung von --track
da es sich um einen Einzeiler handelt. Also… eine Art Einzeiler, weil Sie es tun würden still muss rennen git fetch <remote>
Erste.
FYI: Die Reihenfolge der <refspecs>
(source:destination) erklärt die bizarre Pre-Git-1.7-Methode für Löschen entfernter Zweige. Schieben Sie also nichts in die Ziel-Refspec.
Holen Sie sich den Zweig lokal:
git fetch origin <branchName>
Wechseln Sie zu diesem Zweig:
git checkout <branchName>
Um myBranch auszuchecken, das remote und nicht lokal existiert – das hat bei mir funktioniert:
git fetch --all
git checkout myBranch
Ich habe diese Nachricht bekommen:
Branch myBranch set up to track remote branch myBranch from origin
Switched to a new branch 'myBranch'
Verwenden git branch -a
(sowohl lokale als auch entfernte Niederlassungen) oder git branch -r
(nur entfernte Zweige), um alle entfernten Zweige und ihre Zweige anzuzeigen. Dann kannst du a git checkout -t remotes/repo/branch
zum Remote und erstellen Sie einen lokalen Zweig.
Da ist auch ein git-ls-remote Befehl, um alle Referenzen und Tags für diese Fernbedienung anzuzeigen.
mögliches Duplikat von git checkout remote branch
– Andreas Marshall
2. März 2012 um 17:27 Uhr
Ich benutzte:
git fetch --all
Um dann alle Zweige anzuzeigen:git branch
Dann checke ich den Zweig aus:git checkout nameofnewbranch
– Jeff Mattson
20. September 2017 um 17:24 Uhr
überprüfen Sie Ihre Frage und https://stackoverflow.com/questions/1072261/push-and-pull-branches-in-git/47780374#47780374
– Rizwan
12. Dezember 2017 um 19:46 Uhr
Mögliches Duplikat von How do I check out a remote Git branch?
– DaveyDaveDave
22. Januar 2019 um 11:09 Uhr
git fetch origin discover:discover && git checkout discover
– Gayan Weerakutti
1. Februar 2019 um 16:15 Uhr