2010-10-22 6 views
47

Ich habe ein Repository auf Github. Es enthält Master und einen Zweig.Nach Git Klon, sehe ich nicht meine Filiale

Wenn ich es klonen, erhalte ich nur Master und sehe meinen Zweig nicht.
Warum ist es so? Wie kann ich alle Zweige im Repository sehen?

Antwort

70

Standardmäßig erstellt git clone nur einen Zweig: den aktuell ausgecheckten, meist Master. Es erstellt jedoch Remote-Überwachungszweige für alle anderen Zweige in der Remote. Stellen Sie sich diese als lokale Kopien der Zweigstellen der Fernbedienung vor, die durch Abrufen aktualisiert werden können. Sie sind keine echten lokalen Zweige, da sie nur dazu gedacht sind, auf die Zweigstellen der Remote zuzugreifen, an denen Sie nicht arbeiten können.

Wenn Sie git branch -a ausführen, sehen Sie alle Zweige, lokal und remote. Wenn Sie nur die entfernten sehen möchten, verwenden Sie git branch -r. Wenn Sie eine visuelle Verlaufsanzeige bevorzugen, versuchen Sie gitk --all (oder gitk --remotes).

einen lokalen Zweig erstellen zu arbeiten, verwenden

git branch <branch-name> origin/<branch-name> 

Das wird eine neue lokale Niederlassung der des entfernten Zweig als der Punkt Start mit erstellen.

+5

eine kürzere Syntax, die unterstützt wird ist git branch -t Herkunft/

+1

@adymitruk: Nicht sicher, wenn -t eingeführt wurde, aber in Git 1.6.3.1 und früher ist es nicht. Wenn -t nicht vorhanden ist, können die Benutzer stattdessen --track verwenden. – Trott

12

Verwendung:

git branch -r 

Diese finden Sie alle entfernten Niederlassungen zeigen. Sie können dann tun:

git branch -t my_local_branch origin/remote_branch 
git checkout my_local_branch 

Dann machen Sie Ihre Arbeit und drücken Sie dann auf die Remote-Zweigstelle.

11

Sie können direkt tun:

git checkout <original-remote-branch-name> 

Dadurch entsteht automatisch eine lokale Niederlassung, die den Remote-Zweig mit dem gleichen Namen verfolgt. Tun Sie dies immer nach dem Klonen, wenn Sie an einem bestimmten Zweig als Master arbeiten möchten.

Hinweis: Beim Klonen ist der entfernte Name standardmäßig "Ursprung", der sich vom entfernten Namen unterscheidet, der auf anderen Maschinen verwendet wird, auf denen Sie gerade arbeiten. Sie können also zunächst Ihre Fernbedienung benennen, bevor Sie sie kopieren oder an den Ursprung weiterleiten.