Die Antwort wurde je nachdem aufgeteilt, ob ein oder mehrere entfernte Repositorys konfiguriert sind. Der Grund dafür ist, dass für den Fall eines einzelnen Remote einige der Befehle vereinfacht werden können, da es weniger Mehrdeutigkeiten gibt.
Aktualisiert für Git 2.23: Für ältere Versionen siehe den Abschnitt am Ende.
Mit einem Remote
In beiden Fällen beginnen Sie damit, vom Remote-Repository zu fetchen, um sicherzustellen, dass Sie alle neuesten Änderungen heruntergeladen haben.
$ git fetch
Dies holt alle Remote-Branches für Sie. Sie können die verfügbaren Branches mit auschecken:
$ git branch -v -a
...
remotes/origin/test
Die Branches, die mit remotes/*
beginnen, können als schreibgeschützte Kopien der Remote-Branches betrachtet werden. Um an einem Branch zu arbeiten, müssen Sie einen lokalen Branch erstellen. Dies wird mit dem Git-Befehl switch
(seit Git 2.23) durchgeführt, indem Sie ihm den Namen des Remote-Branches geben (ohne den Remote-Namen):
$ git switch test
In diesem Fall nimmt Git an (kann mit --no-guess
deaktiviert werden), dass Sie versuchen, den Remote-Branch mit dem gleichen Namen zu auschecken und zu verfolgen.
Mit mehreren Remotes
Im Fall mehrerer Remote-Repositorys muss das Remote-Repository explizit benannt werden.
Wie zuvor, beginnen Sie mit dem Abrufen der neuesten Remote-Änderungen:
$ git fetch origin
Dies holt alle Remote-Branches für Sie. Sie können die verfügbaren Branches mit auschecken:
$ git branch -v -a
Mit den Remote-Branches in der Hand müssen Sie nun den Branch, an dem Sie interessiert sind, mit -c
auschecken, um einen neuen lokalen Branch zu erstellen:
$ git switch -c test origin/test
Weitere Informationen zur Verwendung von git switch
:
$ man git-switch
Vor Git 2.23
git switch
wurde in Git 2.23 hinzugefügt, zuvor wurde git checkout
verwendet, um Branches zu wechseln.
Um mit nur einem einzelnen Remote-Repository auszuchecken:
git checkout test
Wenn mehrere Remote-Repositorys konfiguriert sind, wird es etwas länger:
git checkout -b test /test
52 Stimmen
Ich denke, dieser Thread ist nicht hilfreich. Nichts scheint zu funktionieren, die ursprüngliche Frage scheint in vielen der Antworten verloren gegangen zu sein. Ich habe jedes Wort gelesen, alles unten ausprobiert und habe keine Ahnung, wie man das machen soll, was der OP machen möchte.
58 Stimmen
Ich habe das Gefühl, als würde ich verrückt werden. Ich versuche, einen branch von einem
upstream
und nicht nur vonorigin
zu auszuchecken, und jede empfohlene Antwort ist überhaupt nicht hilfreich (im wahrsten Sinne des Wortes). EDIT - entschuldigen Sie bitte, die Vielzahl der Vorschläge in den beiden erstplatzierten Antworten war nutzlos; der dritte (git branch test origin/test
) funktioniert. Schön, dass die beiden ersten Antworten 20x so viele Stimmen haben...0 Stimmen
Vielleicht nützlich für jemand anderen: Als ich die Atom-Editor-Benutzeroberfläche benutzte, um Änderungen abzurufen und zu ziehen, zog sie Änderungen am "main" branch, aber erstellte keine lokale Referenz zum zweiten Remote-Branch. Die Verwendung von
git fetch
in der Befehlszeile hat diese Referenz erstellt, dann konnte ich den Branch gemäß mehrerer Antworten auschecken.0 Stimmen
Aus der ersten Antwort, wenn es nur ein Remote gibt, funktioniert Folgendes: git fetch, gefolgt von git switch test
0 Stimmen
Dieses Frage muss umbenannt werden, sie ist schlecht ausgerichtet mit dem Inhalt und Google-Bombs andere Fragen auf SO, die das Thema besser behandeln (z.B. jede Antwort hier hat bei mir versagt - aber sie beantworten alle verschiedene Interpretationen der Frage, also ist das keine Überraschung). Für zukünftige Leser: Tun Sie nichts in dieser SO-Frage/Antworten! Schließen Sie diesen Tab und suchen Sie erneut auf SO, finden Sie eine andere Frage zum selben Thema.
10 Stimmen
git fetch
danngit switch
1 Stimmen
Zumindest im modernen (2022) git-Kontext wäre der Befehl
git fetch origin test
vorgit checkout origin/test
erforderlich.0 Stimmen
Für mich hat das geholfen: stackoverflow.com/a/25941875/38940
5 Stimmen
Diese Antwort sollte archiviert werden. Es ist nicht nützlich, Leuten Antworten zu zeigen, die so alt sind. Stackoverflow sollte einen aktualisierten Antwort-Button haben.
0 Stimmen
Was ich heute gemacht habe: Ich habe einen weiteren Branch-Test von einer anderen Maschine erstellt, auf die ich einen Remote-Branch gepusht habe. Aus irgendeinem Grund kann ich nicht mehr auf diese Maschine zugreifen, und ich habe von einer anderen Maschine aus "git checkout test" versucht. Es hat nicht funktioniert und sagte "Fehler: Pfadangabe 'test' stimmt mit keiner Datei überein, die git bekannt ist." Dann habe ich "git pull" ausgeführt, dann wieder "git checkout test", und ich konnte jetzt zu diesem Branch wechseln: "Branch 'test' eingerichtet, um Remote-Branch 'test' von 'origin' zu verfolgen."
0 Stimmen
In meinem Fall habe ich einfach den Namen des Remote-Zweigs FALSCH geschrieben. Wenn keiner der hier aufgeführten Methoden für dich funktioniert hat, überprüfe deine Rechtschreibung...