
Peter Colton
Ich habe ein master
und ein development
Zweig, beide zugeschoben GitHub. Ich habe clone
D, pull
ed, und fetch
ed, aber ich kann nichts anderes als die bekommen master
Zweig zurück.
Ich bin mir sicher, dass ich etwas Offensichtliches übersehe, aber ich habe das Handbuch gelesen und bekomme überhaupt keine Freude.

Gabe Kopley
Wenn Sie viele entfernte Branches haben, die Sie auf einmal abrufen möchten, tun Sie Folgendes:
git pull --all
Jetzt können Sie jeden Zweig nach Bedarf auschecken, ohne das Remote-Repository zu treffen.
Notiz: Dadurch werden keine Arbeitskopien von nicht ausgecheckten Zweigen erstellt, was die Frage war. Siehe dazu
- Bigfishs Antwort
- Daves Antwort

David
Verwendung der --mirror
Option scheint die zu kopieren remote
Verzweigungen richtig verfolgen. Es richtet das Repository jedoch als Bare-Repository ein, sodass Sie es anschließend wieder in ein normales Repository umwandeln müssen.
git clone --mirror path/to/original path/to/dest/.git
cd path/to/dest
git config --bool core.bare false
git checkout anybranch
Referenz: Git-FAQ: Wie klone ich ein Repository mit allen remote verfolgten Branches?

Harry B
Sie können ganz einfach zu einem Zweig wechseln, ohne die ausgefallene Syntax “git checkout -b somebranch origin/somebranch” zu verwenden. Du kannst tun:
git checkout somebranch
Git wird automatisch das Richtige tun:
$ git checkout somebranch
Branch somebranch set up to track remote branch somebranch from origin.
Switched to a new branch 'somebranch'
Git prüft, ob ein Branch mit demselben Namen in genau einem Remote-Branch existiert, und wenn ja, verfolgt es ihn genauso, als ob Sie explizit angegeben hätten, dass es sich um einen Remote-Branch handelt. Von der Git-Checkout-Manpage von Git 1.8.2.1:
Wenn nicht gefunden wird, aber ein Tracking-Zweig in genau einer Remote (nennen Sie ihn ) mit einem passenden Namen existiert, behandeln Sie ihn als äquivalent zu
$ git checkout -b <branch> --track <remote>/<branch>

Peter Mortensen
Bezüglich,
git checkout -b experimenteller Ursprung/experimentell
verwenden
git checkout -t origin/experimental
oder je ausführlicher, aber leichter zu merken
git checkout --track origin/experimental
könnte besser sein, wenn es darum geht, ein entferntes Repository zu verfolgen.
9856900cookie-checkSo klonen Sie alle Remote-Zweige in Gityes
Die akzeptierte Antwort hier (
git branch -a
) zeigt Ihnen die Branches in der Fernbedienung, aber wenn Sie versuchen, einen davon auszuchecken, befinden Sie sich in einem „getrennten HEAD“-Zustand. Die nächste Antwort nach unten (zweithäufigste positive Stimmen) beantwortet eine andere Frage (nämlich: wie man alle Zweige zieht, und dies funktioniert wiederum nur für diejenigen, die Sie lokal verfolgen). Einige der Kommentare weisen darauf hin, dass Sie die analysieren könntengit branch -a
Ergebnisse mit einem Shell-Skript, das alle entfernten Zweige lokal verfolgen würde. Zusammenfassung: Es gibt keinen git-nativen Weg, um das zu tun, was Sie wollen, und es ist vielleicht sowieso keine so gute Idee.– Tag Davis Waterbury
18. Juni 2012 um 22:43 Uhr
Vielleicht einfach den gesamten Ordner auf altmodische Weise kopieren?
scp some_user@example.com:/home/some_user/project_folder ~
Ich bin mir jedoch nicht sicher, ob diese Lösung für GitHub funktioniert.– snapfractalpop
26. September 2012 um 22:51 Uhr
Anstatt zu sagen “Ich habe geklont, gezogen und geholt”, ist es viel besser, uns das zu zeigen genaue Befehle die du hingerichtet hast.
– Bob Gilmore
22. November 2013 um 18:17 Uhr
Es ist mir immer ein Rätsel, warum “klonen” nicht im Sinne einer exakten Kopie ist. Wenn es sich um einen exakten Klon handelt, sollten dann nicht alle Branches Teil des lokalen Repositorys sein? Ich meine, ist das nicht einer der Punkte der Verteilung? Wenn also ein Repository weg ist, haben Sie immer noch eine vollständige Kopie von allem. Oder sind die sogenannten “Remote” wirklich schon Teil des lokalen Repositorys?
– Hummel
11. Juli 2016 um 6:31 Uhr
Angesichts all der Upvotes, Antworten, Kommentare zu Antworten und der verblüffenden Anzahl von Aufrufen denke ich, dass es an der Zeit ist, dass git einen Befehl dafür hinzufügt. Und recht hast du @huggie, genau meine Gedanken.
– Sнаđошƒаӽ
29. August 2016 um 4:29 Uhr