8559 Stimmen

Wie prüfe ich einen entfernten Git-Zweig aus?

Jemand hat einen Zweig namens test mit git push origin test in ein gemeinsames Repository geschoben. Ich kann den Zweig mit git branch -r sehen. Wie kann ich den Remote-Zweig test auschecken? Ich habe es versucht:

  • git checkout test, was nichts macht
  • git checkout origin/test gibt * (kein Zweig)

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 von origin 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.

14voto

Um neu erstellte Branches zu bekommen

git fetch

Um in einen anderen Branch zu wechseln

git checkout BranchName

14voto

Zahra Badri Punkte 1074

Um alle Remote-Branches zu erhalten, verwenden Sie dies:

git fetch --all

Dann wechseln Sie zum Branch:

git checkout test

14voto

oldman Punkte 4196

Andere Männer und Frauen geben die Lösungen, aber vielleicht kann ich dir sagen, warum.

git checkout test das nichts macht

Macht nichts bedeutet nicht funktioniert nicht, also vermute ich, dass wenn du 'git checkout test' in deinem Terminal eingibst und die Eingabetaste drückst, keine Meldung erscheint und kein Fehler auftritt. Liege ich richtig?

Wenn die Antwort 'ja' lautet, kann ich dir die Ursache nennen.

Die Ursache dafür ist, dass es eine Datei (oder einen Ordner) namens 'test' in deinem Arbeitsverzeichnis gibt.

Wenn git checkout xxx analysiert wird,

  1. Git interpretiert xxx zunächst als Branch-Namen, aber es gibt keinen Branch namens test.
  2. Dann denkt Git, dass xxx ein Pfad ist, und glücklicherweise (oder unglücklicherweise) gibt es eine Datei namens test. Also bedeutet git checkout xxx, alle Änderungen an der xxx-Datei zu verwerfen.
  3. Wenn es auch keine Datei namens xxx gibt, wird Git versuchen, die xxx entsprechend einigen Regeln zu erstellen. Eine der Regeln ist, einen Branch namens xxx zu erstellen, wenn remotes/origin/xxx existiert.

13voto

Cássio Tavares Punkte 69

Es scheint mir, dass niemand den einfachsten Weg vorgeschlagen hat (oder vielleicht bin ich zu dumm zu denken, dass dies "ein Weg" ist). Aber trotzdem, probiere das:

git pull origin remoteBranchName
git switch remoteBranchName

Das hat bei mir in dem gleichen Fall funktioniert (ein Branch wurde auf dem Remote nach meinem letzten Pull-Request erstellt).

12voto

hzpc-joostk Punkte 321

Für uns schien die remote.origin.fetch-Konfiguration ein Problem verursacht zu haben. Daher konnten wir keine anderen Remote-Branches als master sehen, also half auch git fetch [--all] nicht. Weder git checkout mybranch noch git checkout -b mybranch --track origin/mybranch funktionierten, obwohl es sicherlich auf dem Remote war.

Die vorherige Konfiguration hat nur zugelassen, dass master geholt wurde:

$ git config --list | grep fetch
remote.origin.fetch=+refs/heads/master:refs/remotes/origin/master

Beheben Sie es, indem Sie * verwenden und die neuen Informationen von origin abrufen:

$ git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'

$ git fetch
...
 * [neuer Branch] ...
...

Jetzt konnten wir den Remote-Branch lokal mit git checkout auschecken.

Ich habe keine Ahnung, wie diese Konfiguration in unserem lokalen Repository gelandet ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X