2009-07-25 14 views
1

Ich habe seltsames Problem mit meinem Git Repo konfrontiert. Im Prozess des Klonens verliert es alle Köpfe außer Master. Ist head nicht nur ein Datei-Verweis auf die Commit-ID? Oder sollte es irgendwo anders registriert werden, um geklont zu werden?Disappearing Kopf in Git Repo

Es sieht genau wie William Pursell beschrieben:

cd a 
$ git branch 
    master 
    * test 
$ cd .. 
$ git clone a b 
Initialized empty Git repository in /private/tmp/b/.git/ 
$ cd b 
$ git branch 
    * master 
+1

Bitte erweitern. Wenn Sie "während des Klonens" sagen, meinen Sie, dass die Quelle Zweige verliert oder dass das Ziel des Klons nicht alle Quellzweige enthält. Welche Befehle verwenden Sie, um dies zu bestimmen? –

+0

Entschuldigung für Unklarheiten. –

+0

Sie müssen sich nicht entschuldigen, bearbeiten Sie einfach Ihre Frage mit klarstellenden Details und dann können potenzielle Fragenbeantworter mit Antworten helfen, die nicht nur auf Raten basieren. –

Antwort

3

Vielleicht haben Sie nicht alle Ihre Filialen in Ihrer Remote-Repository geschoben. Das Klonen eines Remote-Repositorys sollte automatisch alle Remote-Zweige enthalten.

Beachten Sie, dass entfernte Zweigstellen nicht automatisch zu lokalen Zweigstellen werden. Sie können den Befehl git branch -a verwenden, um alle Zweige anzuzeigen, die Sie haben. Beispiel:

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

Damit können wir den „nächsten“ remote Zweig in eine lokal mit git checkout -b drehen und den Remote-Zweig als Ausgangspunkt angeben:

$ git co -b next origin/next 
Branch next set up to track remote branch next from origin. 
Switched to a new branch 'next' 

Und jetzt bist du alle für "next" arbeiten.

1

Ich denke, dass etwas falsch ist mit Ihrem und William Purpell Git Installation. Bitte überlege, einen Fehlerbericht zu protokollieren.

Was git Klon tun soll, ist die Remote-Köpfe in refs/remotes/Herkunft/* zu kopieren und dann einen neuen Zweig mit dem gleichen Namen und Status als was ausgecheckt als HEAD der Fernbedienung ausgecheckt.

In Ihrem Fall zeigt git branch dass test auf der Quelle repostiory ausgecheckt, so sollte git clone eine test Niederlassung in Zielrepository erstellen basierend auf dem Remote-test Zweig.

Hier ist, was ich bekomme.