Wie aktualisiere ich einen Git-Klon –mirror?

Lesezeit: 4 Minuten

Ich habe ein Git-Repository erstellt, um eine Live-Site zu spiegeln (die kein reines Git-Repository ist):

git clone --mirror ssh://[email protected]/path/to/repo

Welchen Befehl oder welche Befehle muss ich verwenden, um diesen Spiegelklon mit allen Änderungen von seinem entfernten Ursprung auf dem neuesten Stand zu halten?

Ich möchte alles auf dem neuesten Stand halten: Commits, Refs, Hooks, Branches usw.

Danke!

Dies ist der Befehl, den Sie auf dem Spiegel ausführen müssen:

git remote update

  • @Magnus Skog: Großartig. Danke! Ist das alles? Brauche ich einen anderen Befehl, wie z git fetch? Oder git remote update allein wird es alles tun?

    – J. Bruni

    27. Mai 2011 um 11:40 Uhr


  • Ich würde auch gerne wissen, was der Unterschied zu git fetch ist.

    – Thorbjørn Ravn Andersen

    27. Mai 2011 um 11:51 Uhr

  • @Thorbjörn (Sie müssen mit einem schwedischen ö zu tun haben :)): Git fetch aktualisiert nur Ihr Repository mit Remote-Referenzen von der Fernbedienung. Dieser Befehl wird aktualisiert alles auf dem gespiegelten Repository.

    – ralphtheninja

    27. Mai 2011 um 12:25 Uhr

  • Hier ist eine gute Antwort, die mehr erklärt: stackoverflow.com/questions/3959924/…

    – ralphtheninja

    27. Mai 2011 um 12:27 Uhr

  • ‘git remote update –prune’ wird all dies tun, aber Zweige entfernen, wenn sie aus dem ursprünglichen Repository entfernt werden.

    – teeks99

    19. September 2014 um 15:06 Uhr

Wie aktualisiere ich einen Git Klon mirror
J. Bruni

Bezüglich Commits, Refs, Branches und “und so weiter“, Magnus Antwort funktioniert einfach (git remote update).

Aber leider gibt es keine Möglichkeit dazu clone / Spiegel / update die Hakenwie ich wollte …

Ich habe diesen sehr interessanten Thread zum Klonen/Spiegeln der Hooks gefunden:

http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread

Ich lernte:

  • Die Hooks werden nicht als Teil des Repository-Inhalts betrachtet.

  • Es gibt mehr Daten, wie die .git/description Ordner, der nicht geklont wird, ebenso wie die Hooks.

  • Die Standard-Hooks, die in der hooks dir kommt von der TEMPLATE_DIR

  • Es gibt dieses interessante template Funktion auf git.

Also kann ich dieses “Clone-the-Hooks-Ding” entweder ignorieren oder mich für eine entscheiden rsync Strategie, angesichts der Zwecke meines Spiegels (Backup + Quelle nur für andere Klone).

Nun … Ich werde das Klonen von Hooks einfach vergessen und mich an die halten git remote update Weg.

  • Sehe hat gerade darauf hingewiesen, dass nicht nur “Hooks” von der nicht verwaltet werden clone / update process, aber auch stashes, rerere, etc… Also, für ein striktes Backup, rsync oder gleichwertig wäre wirklich der richtige Weg. Da dies in meinem Fall nicht wirklich notwendig ist (ich kann es mir leisten, keine Haken, Stashes usw. zu haben), bleibe ich wie gesagt bei der remote update.

Danke! Etwas von meinem eigenen “Git-Fu” verbessert… 🙂

1647280687 197 Wie aktualisiere ich einen Git Klon mirror
sehen

Siehe hier: Git klont bei nachfolgenden Klonen nicht alle Branches?

Wenn Sie dies wirklich wollen, ziehen Sie stattdessen Zweige push --mirrorhier kannst du nachschauen:

“fetch –all” in einem Git-Bare-Repository synchronisiert lokale Branches nicht mit den entfernten

Diese Antwort enthält detaillierte Schritte, wie Sie dies relativ einfach erreichen können:

  • push ist keine Option für mich, weil ich es auf der Empfängerseite tun muss (von wo aus der Klon stammt); pull ist auch keine Option, da ein Spiegel-Repository ein reines Repository ist (kein funktionierender Baum, also kein “Pull”) – so scheint es git remote update macht in der Tat alles (viel einfacher als die referenzierte Antwort) … Wie auch immer, danke! Sicherlich gibt es wertvolle Informationen in den verlinkten Fragen/Antworten.

    – J. Bruni

    27. Mai 2011 um 12:19 Uhr

  • ok, ich meinte ziehen wie im üblichen Sprachgebrauch. Push-and-Pull-Technologie. Es gibt kaum ein anderes Wort außer dem unsinnigen “die Daten von einer entfernten Stelle aktiv beim Client abrufen”, das nicht ein Wort überspielen würde, das für Git- oder DVCS-Systeme eine Bedeutung hat 🙂 Der zweite Link liefert die gewünschten Details. Beachten Sie, dass ‘git remote update’ dies tut nicht tatsächlich behalten Sie den ‘Spiegel’-Status ohne die dort erwähnten zusätzlichen Operationen bei

    – sehen

    27. Mai 2011 um 12:26 Uhr

  • hmm … Entschuldigung (HTH) – es scheint, dass ein “absoluter” Spiegel leichter durch ein einfaches “rsync” des ursprünglichen Repo-Ordners zu erreichen ist … nicht das, was ich wollte, aber … ich habe nur einige Tests durchgeführt … und nichts scheint die Haken zu kopieren – was mich besonders interessiert …

    – J. Bruni

    27. Mai 2011 um 12:33 Uhr

  • FYI, die Zwecke dieses Spiegels sind nur diese: 1) vollständiges Backup, von wo ich wiederherstellen kann, wenn die Daten auf dem ursprünglichen Repo-Server verloren gehen; 2) irgendwo, wo andere klonen und ein lokales funktionierendes Repo erhalten können, ohne Zugriff auf das ursprüngliche Quell-Repo zu haben

    – J. Bruni

    27. Mai 2011 um 12:36 Uhr


  • Wenn Sie Hooks und alles wollen, könnte Gitosis (ich erinnere mich nicht gut) das haben, was Sie brauchen, aber ich würde mitmachen rsync In diesem Fall. Außerdem nehme ich an, dass Sie Verstecke vergessen (siehe Hier) und rerere Informationen auch …?

    – sehen

    27. Mai 2011 um 13:01 Uhr


1002610cookie-checkWie aktualisiere ich einen Git-Klon –mirror?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy