Ich habe ein master und ein development Zweig, beide zugeschoben GitHub. Ich habe cloneD, pulled, und fetched, 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.
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önnten git 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 [email protected]:/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
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
Wenn ich git clone mache, habe ich den Master-Branch lokal und 10 Branches “remote”. Also DIESE Antwort von Gabe war sehr hilfreich und beantwortet die Frage.
– basZero
27. Januar 2012 um 19:07 Uhr
Dadurch werden nur entfernte Zweige abgerufen, die lokal hinzugefügt wurden, nicht irgendein entfernte Filiale
– jujule
10. Februar 2012 um 11:45 Uhr
Der erste Befehl ist redundant. Einfach git pull --all wird dasselbe tun – es wird nur nicht zweimal abgerufen. Und infosec812 hat Recht, dass dies die Frage ohnehin nicht beantwortet. Ich frage mich, wie das so viele Upvotes bekommen hat.
– Sven Marnach
6. April 2012 um 14:03 Uhr
Dies ist überhaupt nicht hilfreich, zieht keine anderen Remote-Zweige als die vorhandenen.
– Avinash R
11. April 2013 um 15:02 Uhr
Es ist nicht das erste Mal, dass eine Antwort so einfach ist falsch Weil es die Frage nicht beantwortet, werden Hunderte von Upvotes von Leuten erhalten, die entweder Fragen nicht verstanden und / oder beantwortet haben oder von Google gelandet sind, um nach etwas anderem als dem ursprünglichen OP-Problem zu suchen, und eine solche “Antwort” hat versehentlich ihr Problem beantwortet. Leider gibt es kein gültiges Flag für Antworten, die die Frage nicht beantworten. Der einzige Weg ist das Downvoting, was in einigen Fällen offensichtlich nicht funktioniert, also wird solch ein Lärm für immer bleiben 🙁
– 9ilsdx 9rvj 0lo
10. April 2018 um 14:43 Uhr
Dies ist wirklich nah an einer perfekten Lösung. Das einzige, was es noch besser machen würde, wäre, wenn diese Funktionalität als Option in Git integriert wäre.
– Deven Phillips
27. Oktober 2011 um 17:15 Uhr
“Einzeiler”: git branch -a | grep -v HEAD | perl -ne 'chomp($_); s|^\*?\s*||; if (m|(.+)/(.+)| && not $d{$2}) {print qq(git branch --track $2 $1/$2\n)} else {$d{$_}=1}' | csh -xfs Wie gewohnt: Vor dem Kopieren in Ihrem Setup testen rm -rf universe as we know it
– cfi
18. September 2012 um 12:38 Uhr
Dieser Befehl erstellt die Feature-Zweige aus der Ferne als normale Branches (keine Feature-Zweige) – wie kann man das beheben?
– Alex2php
20. März 2014 um 14:31 Uhr
Wenn Sie auf Probleme mit “/” in Zweignamen stoßen, finden Sie unten eine Lösung mit einem Git-Alias. siehe Antwort von “niemand” auf “beantwortet am 15. Mai ’13 um 11:02 Uhr”
– Wemu
12. Januar 2015 um 11:54 Uhr
Ich trimme gerade remotes/origin/ Namespaces erhalten: for BRANCH in $(git branch -a | grep remotes | grep -v HEAD | grep -v master); do git branch --track "${BRANCH#remotes/origin/}" "${BRANCH}"; done
– kgadek
2. Juli 2015 um 8:33 Uhr
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.
Sie wissen, dass dies eigentlich eine ziemlich gute Antwort zu sein scheint, obwohl es keine Stimmen gibt. Gibt es irgendwelche Fallstricke, wenn man es so macht? Ich musste einen Zweig explizit auschecken, nachdem ich diese Befehle ausgeführt hatte.
– Schleife
12. Januar 2012 um 4:25 Uhr
Dies in Kombination mit git push –mirror ist genau das, was ich brauchte, um ein exaktes Duplikat eines Remote-Git-Repos zu erstellen, wenn ich von github.com zu einer Github-Unternehmensinstallation wechselte. Danke!
– Jakob Fike
11. September 2012 um 22:59 Uhr
@Dave: Füge ein Finale hinzu git checkout als letzten Befehl, um den Kopf des aktuellen Zweigs im geklonten Repo endgültig auszuchecken. Dies ist eine großartige Antwort, bei weitem die beste. Sei mutig, irgendwann bringen wir dich an die Spitze 🙂
– cfi
18. September 2012 um 7:37 Uhr
@Dave: Hm. Ich habe Bedenken: –mirror macht mehr als nur alle Branches so einzurichten, dass sie verfolgt werden. Es kopiert alle Refs vom Ursprung und den nachfolgenden git remote update werde das wieder machen. Das Verhalten von Pulls ändert sich. Ich glaube wieder, dass die vollständige Kopie ein einzeiliges Skript erfordert.
– cfi
18. September 2012 um 11:53 Uhr
git clone --mirror eignet sich sehr gut zum Sichern Ihrer Git-Repositories ^_^
– TrinitronX
20. Mai 2013 um 21:19 Uhr
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
Sie wissen, dass dies eigentlich eine ziemlich gute Antwort zu sein scheint, obwohl es keine Stimmen gibt. Gibt es irgendwelche Fallstricke, wenn man es so macht? Ich musste einen Zweig explizit auschecken, nachdem ich diese Befehle ausgeführt hatte.
– Schleife
12. Januar 2012 um 4:25 Uhr
Dies in Kombination mit git push –mirror ist genau das, was ich brauchte, um ein exaktes Duplikat eines Remote-Git-Repos zu erstellen, wenn ich von github.com zu einer Github-Unternehmensinstallation wechselte. Danke!
– Jakob Fike
11. September 2012 um 22:59 Uhr
@Dave: Füge ein Finale hinzu git checkout als letzten Befehl, um den Kopf des aktuellen Zweigs im geklonten Repo endgültig auszuchecken. Dies ist eine großartige Antwort, bei weitem die beste. Sei mutig, irgendwann bringen wir dich an die Spitze 🙂
– cfi
18. September 2012 um 7:37 Uhr
@Dave: Hm. Ich habe Bedenken: –mirror macht mehr als nur alle Branches so einzurichten, dass sie verfolgt werden. Es kopiert alle Refs vom Ursprung und den nachfolgenden git remote update werde das wieder machen. Das Verhalten von Pulls ändert sich. Ich glaube wieder, dass die vollständige Kopie ein einzeiliges Skript erfordert.
– cfi
18. September 2012 um 11:53 Uhr
git clone --mirror eignet sich sehr gut zum Sichern Ihrer Git-Repositories ^_^
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 [email protected]:/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