git zieht alle Zweige aus dem Remote-Repository
Wie ziehe ich alle remote-branches an mein eigenes repository?
wenn ich Typ:
git branch -a
Bekomme ich eine lange Liste von Filialen, aber wenn ich Typ:
git branch
Sehe ich nur 2 von Ihnen.
Wie kann ich pull ALLE Filialen in meiner lokalen Liste?
Ich weiß, dass ich tun kann:
git checkout --track origin/branch-name
aber das zieht und prüft nur ein Zweig zu einem Zeitpunkt. Jeder Weg, um bekommen es alle auf einmal getan, ohne, dass die ganze mühsame Arbeit der Ausführung von git checkout --track origin/branch-name immer und immer und immer wieder?
ps.
Ich habe versucht folgenden Befehle ein, und keiner von Ihnen machte es, Außenstellen in meiner git branch Liste:
git fetch --all
git remote update
git pull --all
Kommentar zu dem Problem
mögliche Duplikate von Verfolgen Sie alle remote-git-Zweige als lokale branches
Aber warum wollen Sie dies tun?
Früher habe ich immer meine one-liner: stackoverflow.com/a/6300386/6309
@Pigueiras ist richtig, die Frage ist eine doppelte. Aber knittl richtig mit seinem Kommentar: ich kann nicht sehen, den Zweck der Frage. Ich könnte annehmen, dass die Nutzer bekommen einmal mehr in die Irre leiten git-Terminologie. Ein remote-branch ist nicht etwas abgelegen, ist eine lokale Momentaufnahme von etwas entferntes.
@VonC - könnten Sie bitte, poste es als Antwort für diese Frage, so konnte ich mark es gelöst? Danke. ||| Problem ist, dass ich nicht Zweige Zusammenführen, wenn Sie nicht die auf
git branch
- Liste (unabhängig davon, wie Sie sich entscheiden, Sie zu nennen) - und es passiert, ich Zusammenführen müssen eine Menge von Ihnen zur gleichen Zeit, also brauche ich einen schnellen Weg, um Sie allen zugänglich. VonC Antwort geholfen. InformationsquelleAutor der Frage MarcinWolny | 2013-09-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Befehl, den ich in der Regel verwenden, um alle sichtbaren stromaufwärts Zweige, und verfolgen Sie ist ausführlich in "Verfolgen Sie alle remote-git-Zweige als Filialen":
Oder:
Die zweite ist für das erstellen der neuen lokalen Niederlassungen remote-tracking-branches.
InformationsquelleAutor der Antwort VonC
Lesen, z.B. diese Erklärung http://git-scm.com/book/en/Git-Branching-Remote-Branches
Lassen Sie uns zunächst klären, einige git-Terminologie:
Dem ursprünglichen poster nicht zu erwähnen, Verschmelzung, so dass ich vielleicht denke, in der richtigen git-Terminologie
er könnte sogar Fragen wollte "git fetch alle branches vom remote repository"
Wenn Sie sehen, dass die Zweige in
git branch -a
dann haben Sie bereits geholt.Sie können dies überprüfen, indem Sie den Befehl
git show remotes/origin/some-branch:some-file
Oder tun kann, z.B.
git diff remotes/origin/some-branch master
Können Sie auch überprüfen Sie Sie heraus
git checkout remotes/origin/some-branch
(Um sicherzustellen, dass Sie können entfernen Sie das Netzwerkkabel, und Sie werden sehen, dass die Befehle, die ohne Kontakt mit dem remote-repo.)
Den Zweigen benannt remotes/... aufgerufen werden-remote-Niederlassungen, aber Sie holte schon Ihren repo. Sie sind schreibgeschützt, Sie können Sie ändern (das ist, warum eine Nachricht wird angezeigt, wenn Check-out). Obwohl Sie reflektieren den Zustand eines remote-repo auf den Zeitpunkt der letzten fetch oder pull-Betrieb sind Sie in der Tat lokal gespeichert.
Wenn Sie
git checkout some-branch
- und some-branch noch nicht vorhanden sind, aber remotes/origin/some-branch existiert, git erstellen eine tracking-branch namens some-branch (1). Auch dies ist ein lokaler Vorgang werden alle Daten abgerufen wurde, bevor (oder, wenn Sie nicht vor kurzem geholt, Sie wird anfangen zu arbeiten auf einer veralteten version). Ursprünglich war der Inhalt des tracking-Zweig ist identisch mit dem remote-branch. Allerdings, den tracking-branch kann geändert werden, indem Sie vor Ort.Git Arbeitsbereich enthält den Zustand einer Abteilung auf Zeit. So, zu deiner Frage der überprüfung heraus alle Außenstellen auf einmal nicht wirklich sinnvoll im Kontext von git. Sie können check out Sie einer nach dem anderen. Aber jedes mal, wenn Sie check-out die nächste, die vorhergehende, verschwindet aus dem Arbeitsbereich. Natürlich kann dieser Vorgang automatisiert werden, wie gezeigt, in Verfolgen Sie alle remote-git-Zweige als Filialen Aber was ist der Punkt scripting ein Massen-Betrieb, wenn nur die Letzte Schritt ist, was bleibt?
Könnte also die Frage sein, verursacht durch ein Missverständnis, vorausgesetzt, dass remote-Zweige würde nur dann gespeichert, aus der Ferne, aber nicht lokal und Sie wollte nur sicherstellen, dass Sie alles haben, was lokales? Wenn Sie wirklich wollen, um mehr als ein branch ausgecheckt zu einer Zeit, können Sie Klonen das Repository lokal und Check-out verschiedenen Zweigen in die verschiedenen Arbeitsbereiche. (2)
Kurz: Wenn Sie sicher sein wollen, dass Sie alle Daten lokal verfügbar sind, ist in der
remote-repo verwenden Sie einfach
git fetch [repo]
. Es sei denn, Sie haben gezwickt mit Ihrer Konfiguration dieser holt alle Zweige, D. H. die Aktualisierung der vorhandenen remote branches und auch die Schaffung neuer Fernbedienung zu ersetzen, wenn anwendbar.(1) Dies gilt in einfachen Fällen. In komplizierteren Fällen mit mehr als 1 Fernbedienung oder manuell konfigurierten Fernbedienungen müssen Sie möglicherweise die --track-option angeben, genau das, was Sie wollen.
(2) Es ist ein neues feature
git worktree
für diesen Anwendungsfall. Aber als der Anfang 2018 ist es noch deutlich experimentellerInformationsquelleAutor der Antwort Uwe Geuder
Sollten Sie Versuchen, So Etwas Wie:-
InformationsquelleAutor der Antwort Abhi
Habe ich immer diese verwendet und es funktioniert perfekt
InformationsquelleAutor der Antwort pixel 67