Wie checke ich einen entfernten Git-Zweig aus?

Lesezeit: 5 Minuten

Wie checke ich einen entfernten Git Zweig aus
Juri Glas

Jemand hat eine Filiale geschoben, die angerufen wurde test mit git push origin test zu einem gemeinsam genutzten Repository. Ich kann den Zweig mit sehen git branch -r.

Jetzt versuche ich, die Fernbedienung zu überprüfen test sich verzeigen.

Ich habe es versucht:

  • git checkout test was nichts bringt

  • git checkout origin/test gibt * (no branch). Was verwirrend ist. Wie kann ich auf “kein Zweig” sein?

Wie checke ich einen entfernten Git-Zweig aus?

  • Ich finde diesen Thread nicht hilfreich. Nichts scheint zu funktionieren, die ursprüngliche Frage scheint in vielen Antworten verloren gegangen zu sein. Ich habe jedes Wort gelesen, alles unten ausprobiert und habe keine Ahnung, wie ich das tun soll, was das OP tun möchte.

    – Toni Ennis

    26. August 2014 um 0:16 Uhr

  • Ich fühle mich, als würde ich verrückte Pillen nehmen. Ich versuche, einen Zweig von einem auszuchecken upstreamnicht nur originund jede empfohlene Antwort tut nichts entfernt Hilfreiches (Wortspiel beabsichtigt). BEARBEITEN – Entschuldigung, die vielen Vorschläge in den Top-2-Antworten waren nutzlos; 3. (git branch test origin/test) ist, was funktioniert. Ich bin froh, dass die Top 2 die 20-fache Anzahl an Stimmen haben …

    – Dwanderson

    9. März 2017 um 16:35 Uhr


  • Vielleicht nützlich für jemand anderen: Als ich die Benutzeroberfläche des Atom-Editors zum Abrufen und Pullen von Änderungen verwendete, zog es Änderungen im “Haupt” -Zweig, aber nicht Erstellen Sie eine lokale Referenz zum zweiten Remote-Zweig. Verwenden git fetch In der Befehlszeile wurde diese Referenz erstellt, dann konnte ich den Zweig gemäß mehreren Antworten auschecken.

    – Scott Leis

    15. November 2021 um 5:19 Uhr

  • Von der ersten Antwort an funktioniert Folgendes, wenn es eine einzelne Fernbedienung gibt: git fetch, gefolgt von git switch test

    – derRiley

    23. Januar um 1:32


Wie checke ich einen entfernten Git Zweig aus
Jakub Narębski

Randnotiz: Mit modernem Git (>= 1.6.6), können Sie nur verwenden

git checkout test

(Beachten Sie, dass es “Test” und nicht “Ursprung/Test” ist), um Magie auszuführen DWIM-mery und erstellen Sie den lokalen Zweig ‘test’ für Sie, für den der Upstream der Remote-Tracking-Zweig ‘origin/test’ wäre.


Die * (no branch) in git branch Ausgabe bedeutet, dass Sie sich auf einem unbenannten Zweig befinden, im sogenannten “detached HEAD”-Zustand (HEAD zeigt direkt auf Commit und ist kein symbolischer Verweis auf einen lokalen Zweig). Wenn Sie einige Commits in diesem unbenannten Zweig vorgenommen haben, können Sie jederzeit einen lokalen Zweig aus dem aktuellen Commit erstellen:

git checkout -b test HEAD

Ein modernerer Ansatz, wie in den Kommentaren vorgeschlagen:

@Dennis: git checkout <non-branch>zum Beispiel git checkout origin/test führt zu einem abgetrennten HEAD / unbenannten Zweig, während git checkout test oder git checkout -b test origin/test Ergebnisse in der lokalen Filiale test (mit Remote-Tracking-Zweig origin/test als stromaufwärts) – Jakub Narębski 09. Januar 14 um 08:17 Uhr

Betonung git checkout origin/test

  • Nicht überraschend, aber diese Version wurde in den letzten Jahren veröffentlicht – die Kenntnis dieser Syntax kann viel Zeit sparen, da noch viele alte Dokumentationen und Kommentar-Threads herumschwirren, die die ältere Methode dafür vorschlagen.

    – Curtis

    16. April 2012 um 13:24 Uhr

  • “modern git” – fürs Protokoll, (ungefähr) auf welche Version beziehst du dich? Manchmal müssen wir an Systemen arbeiten, auf denen ältere Distributionen laufen.

    – Craig McQueen

    28. August 2012 um 2:30 Uhr


  • @aidan Wenn Sie eine Antwort wie erhalten error: pathspec 'branch_name' did not match any file(s) known to git. dann solltest du zuerst einen git fetch machen.

    – Denis

    18. Oktober 2013 um 0:40 Uhr

  • Verwenden von Git-Version 1.8.3.msysgit.0 und dies funktioniert bei mir nicht – stimmte mit keiner Datei (en) überein, die Git bekannt sind – Ich habe viele Git-Fetches durchgeführt

    – PandaWood

    3. Dezember 2013 um 23:59 Uhr

  • @Dennis: git checkout <non-branch>zum Beispiel git checkout origin/test führt zu einem abgetrennten HEAD / unbenannten Zweig, während git checkout test oder git checkout -b test origin/test Ergebnisse in der lokalen Filiale test (mit Remote-Tracking-Zweig origin/test als stromaufwärts)

    – Jakub Narębski

    9. Januar 2014 um 8:17 Uhr

  • Dadurch wird eine lokale Verzweigung erstellt, ohne zu ihr zu wechseln.

    – Alex Skrypnyk

    16. Oktober 2013 um 7:20 Uhr

1646882887 553 Wie checke ich einen entfernten Git Zweig aus
Corey Ballou

Akzeptierte Antwort funktioniert bei Ihnen nicht?

Während die erste und ausgewählte Antwort technisch ist Korrekt, besteht die Möglichkeit, dass Sie noch nicht alle Objekte und Refs aus dem Remote-Repository abgerufen haben. Wenn dies der Fall ist, erhalten Sie die folgende Fehlermeldung:

$ git checkout -b remote_branch origin/remote_branch

fatal: git checkout: Das Aktualisieren von Pfaden ist mit dem Wechseln von Zweigen nicht kompatibel.
Wollten Sie „origin/remote_branch“ auschecken, was nicht als Commit aufgelöst werden kann?

Lösung

Wenn Sie diese Nachricht erhalten, müssen Sie zunächst a git fetch origin wo origin ist der Name des Remote-Repositorys vor der Ausführung git checkout remote_branch. Hier ist ein vollständiges Beispiel mit Antworten:

$ git fetch origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
   e6ef1e0..5029161  develop    -> origin/develop
 * [new branch]      demo       -> origin/demo
   d80f8d7..359eab0  master     -> origin/master

$ git checkout demo
Branch demo set up to track remote branch demo from origin.
Switched to a new branch 'demo'

Wie Sie sehen können, laufen git fetch origin alle entfernten Branches abgerufen, für deren Verfolgung wir noch nicht auf unserem lokalen Computer eingerichtet waren. Da wir jetzt einen Verweis auf den entfernten Zweig haben, können wir von dort aus einfach laufen git checkout remote_branch und wir profitieren von den Vorteilen der Fernverfolgung.

  • Danke! git checkout -b branch_name hat bei mir funktioniert.

    – Sanushi Salgado

    27. Februar um 5:20 Uhr

Ich habe die obige Lösung ausprobiert, aber es hat nicht funktioniert. Probieren Sie es aus, es funktioniert:

git fetch origin 'remote_branch':'local_branch_name'

Dadurch wird der entfernte Zweig abgerufen und ein neuer lokaler Zweig (falls noch nicht vorhanden) mit dem Namen erstellt local_branch_name und verfolgen Sie die Fernbedienung darin.

  • Danke! git checkout -b branch_name hat bei mir funktioniert.

    – Sanushi Salgado

    27. Februar um 5:20 Uhr

1646882887 452 Wie checke ich einen entfernten Git Zweig aus
Peter Mortensen

Dieser Wille DWIM für einen entfernten nicht benannten Ursprung (Dokumentation):

$ git checkout -t remote_name/remote_branch

Um eine neue Fernbedienung hinzuzufügen, müssen Sie zuerst Folgendes tun:

$ git remote add remote_name location_of_remote
$ git fetch remote_name

Der erste teilt Git mit, dass die Fernbedienung existiert, der zweite ruft die Commits ab.

985920cookie-checkWie checke ich einen entfernten Git-Zweig aus?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy