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.

31voto

Eugene Yarmash Punkte 130008

Führen Sie einfach git checkout mit dem Namen des Remote-Branches aus. Git wird automatisch einen lokalen Branch erstellen, der den Remote-Branch verfolgt:

git fetch
git checkout test

Wenn dieser Branch-Name jedoch in mehr als einem Remote gefunden wird, funktioniert dies nicht, da Git nicht weiß, welchen es verwenden soll. In diesem Fall können Sie entweder verwenden:

git checkout --track origin/test

oder

git checkout -b test origin/test

In 2.19 hat Git die Konfiguration checkout.defaultRemote gelernt, die einen Remote angibt, auf den standardmäßig zurückgegriffen werden soll, um eine solche Mehrdeutigkeit aufzulösen.

31voto

sreekumar Punkte 2267

Befehle

 git fetch --all
git checkout -b  origin/

sind gleich

 git fetch --all

und dann

 git checkout -b fixes_for_dev origin/development

Beide werden ein latest fixes_for_dev von development erstellen

26voto

Javier C. Punkte 6835

Es gibt viele Alternativen, zum Beispiel:

  • Alternative 1:

    git fetch && git checkout test

    Es ist der einfachste Weg.

  • Alternative 2:

    git fetch
    git checkout test

    Es ist dasselbe, aber in zwei Schritten.

1 Stimmen

Dies hat für mich problemlos funktioniert.

25voto

brianyang Punkte 1020

Keine dieser Antworten hat für mich funktioniert. Dies hat funktioniert:

git checkout -b feature/branch remotes/origin/feature/branch

24voto

Kris Punkte 18038

Wenn sich der Zweig auf etwas anderes als den origin-Remote befindet, mache ich gerne folgendes:

$ git fetch
$ git checkout -b second/next upstream/next

Dadurch wird der Zweig next auf dem upstream-Remote in einen lokalen Zweig namens second/next ausgecheckt. Das bedeutet, dass es keine Konflikte gibt, wenn du bereits einen lokalen Zweig namens next hast.

$ git branch -a
* second/next
  remotes/origin/next
  remotes/upstream/next

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