4812 Stimmen

Wie man alle entfernten Zweige in Git klont

J'ai un master und eine development Zweig, die beide nach GitHub . Ich habe clone d, pull und fetch aber ich kann nach wie vor nichts anderes bekommen als die master Zweig zurück.

Ich bin mir sicher, dass ich etwas Offensichtliches übersehe, aber ich habe das Handbuch gelesen, und ich bekomme überhaupt keine Freude.

63voto

Cerran Punkte 1937

Warum Sie nur "Meister" sehen

git clone lädt alle entfernten Zweige herunter, betrachtet sie aber immer noch als "entfernt", auch wenn sich die Dateien in Ihrem neuen Repository befinden. Es gibt eine Ausnahme, nämlich dass der Klonprozess einen lokalen Zweig namens "master" aus dem entfernten Zweig namens "master" erzeugt. Standardmäßig, git branch zeigt nur lokale Zweige an, weshalb Sie nur "master" sehen.

git branch -a zeigt alle Zweige an, einschließlich abgelegener Zweigstellen .


Wie man lokale Zweigstellen erhält

Wenn Sie tatsächlich an einem Zweig arbeiten wollen, werden Sie wahrscheinlich eine "lokale" Version davon benötigen. So erstellen Sie einfach lokale Zweige aus entfernten Zweigen (ohne sie auszuchecken und damit den Inhalt Ihres Arbeitsverzeichnisses zu verändern) können Sie das so machen:

git branch branchone origin/branchone
git branch branchtwo origin/branchtwo
git branch branchthree origin/branchthree

In diesem Beispiel, branchone ist der Name eines lokalen Zweigs, den Sie auf der Grundlage von origin/branchone Wenn Sie stattdessen lokale Zweige mit unterschiedlichen Namen erstellen möchten, können Sie dies tun:

git branch localbranchname origin/branchone

Sobald Sie einen lokalen Zweig erstellt haben, können Sie ihn mit git branch (denken Sie daran, Sie brauchen keine -a zu den örtlichen Zweigstellen).

54voto

Sam Punkte 1593

Das ist nicht allzu kompliziert. Die folgenden Schritte sind sehr einfach und leicht nachvollziehbar;

git fetch origin : Dadurch werden alle entfernten Zweige in Ihren lokalen Zweig gebracht.

git branch -a : Hier werden Ihnen alle entfernten Zweige angezeigt.

git checkout --track origin/<branch you want to checkout>

Überprüfen Sie mit dem folgenden Befehl, ob Sie sich in der gewünschten Verzweigung befinden;

git branch

Die Ausgabe sieht dann so aus;

*your current branch
some branch2
some branch3

Beachten Sie das *-Zeichen, das die aktuelle Verzweigung kennzeichnet.

47voto

rapher Punkte 415

Tun Sie es einfach:

$ git clone git://example.com/myproject

$ cd myproject

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

$ git pull
Already up-to-date.

$ git branch
* branchxyz
  master

$ git branch -a
* branchxyz
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/branchxyz
  remotes/origin/branch123

Sie sehen, "git clone git://example.com/myprojectt" holt alles, sogar die Zweige, Sie müssen sie nur auschecken, dann wird Ihr lokaler Zweig erstellt.

35voto

Haimei Punkte 11915

Sie müssen nur "git clone" verwenden, um alle Zweige zu erhalten.

git clone <your_http_url>

Auch wenn Sie nur den Master-Zweig sehen, können Sie "git branch -a" verwenden, um alle Zweige zu sehen.

git branch -a

Und Sie können zu jedem beliebigen Zweig wechseln, den Sie bereits haben.

git checkout <your_branch_name>

Machen Sie sich keine Sorgen, dass Sie sich nach dem "git clone" nicht mit dem entfernten Repository verbinden müssen. "git branch -a" und "git checkout <Ihr_Zweigname>" können erfolgreich ausgeführt werden, wenn Sie keine Internetverbindung haben. Es ist also erwiesen, dass bei der Ausführung von "git clone" bereits alle Zweige aus dem entfernten Repository kopiert wurden. Danach brauchen Sie das entfernte Repository nicht mehr. Ihr lokales Repository enthält bereits den Code aller Zweige.

31voto

MattoxBeckman Punkte 3672

A git clone soll das gesamte Repository kopieren. Versuchen Sie, es zu klonen, und führen Sie dann git branch -a . Es sollten alle Zweige aufgelistet sein. Wenn Sie dann zum Zweig "foo" anstelle von "master" wechseln wollen, verwenden Sie git checkout foo .

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