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.

11voto

Andrii Sukhoi Punkte 542

Ich habe das benutzt:

git clean -fxd                         # entfernt ungetrackte (neu hinzugefügte und ignorierte Dateien)

git fetch
git checkout {branchname}

git reset --hard origin/{branchname}   # entfernt gestagte und Arbeitsverzeichnisänderungen

9voto

OzzyCzech Punkte 8588

Sie können alle Remote-Zweige mit dem folgenden Bash-Skript verfolgen:

#!/bin/bash
git fetch --all
for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`
  do git branch -f --track "$branch" "origin/$branch"
done

Hier ist auch eine Einzeilerversion:

git fetch --all; for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`; do git branch --track "$branch" "origin/$branch" ; done ;

9voto

Valentin Vignal Punkte 2722

Für irgendeinen Grund konnte ich nicht folgendes tun:

git checkout -b branch-name origin/branch-name

Es hat den Fehler geworfen:

fatal: 'origin/branch-name' ist kein Commit und ein Branch 'branch-name' kann nicht daraus erstellt werden

Ich musste folgendes tun:

git checkout -b branch-name commit-sha

7 Stimmen

Vielleicht hast du nicht alle Branches von Origin mit git fetch abgerufen? Beachte, dass git switch heutzutage gegenüber git checkout bevorzugt wird: stackoverflow.com/a/57066202/6309

0 Stimmen

Git fetch --all; für branch in git branch -r --format="%(refname:short)" | sed 's/origin\///'; tun; git branch --track "$branch" "origin/$branch" ; gemacht ; done ;

8voto

Prashant Reddy Punkte 229

git fetch --all

würde alle Remote-Zweige lokal abrufen

git checkout test

würde Sie zum Test-Zweig wechseln

7voto

Ulysses Alves Punkte 2111

Wenn der Name des Remote-Zweigs mit Sonderzeichen beginnt, müssen Sie einfache Anführungszeichen verwenden, um ihn im Checkout-Befehl zu umschließen, sonst wird Git nicht wissen, um welchen Zweig es sich handelt.

Zum Beispiel habe ich versucht, einen Remote-Zweig namens #9773 auszuchecken, aber der Befehl hat nicht richtig funktioniert, wie im Bild unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

Aus irgendeinem Grund fragte ich mich, ob das Doppelkreuzsymbol (#) damit etwas zu tun haben könnte, und dann habe ich versucht, den Zweignamen mit einfachen Anführungszeichen zu umgeben, wie '#9773' anstatt nur #9773, und glücklicherweise hat es gut funktioniert.

git checkout -b '#9773' origin/'#9773'

0 Stimmen

Bitte überprüfen Sie Warum sollten keine Bilder von Code/Fehlern hochgeladen werden, wenn eine Frage gestellt wird? (z. B., "Bilder sollten nur verwendet werden, um Probleme darzustellen, die auf keine andere Weise klar gemacht werden können, wie z.B. um Screenshots einer Benutzeroberfläche bereitzustellen.") und das Richtige tun (es betrifft Antworten und Programmausgaben gleichermaßen). Vielen Dank im Voraus.

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