Ich habe ein Git-Repository erstellt, um eine Live-Site zu spiegeln (bei der es sich um ein nicht nacktes Git-Repository handelt):
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, Zweige usw.
Vielen Dank!
git fetch
? Odergit remote update
allein wird das alles tun?In Bezug auf Commits, Refs, Zweige und " usw. " funktioniert Magnus Antwort einfach (
git remote update
).Aber leider gibt es keine Möglichkeit zu
clone
/ spiegeln /update
die Haken , wie 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 habe gelernt:
Die Hooks werden nicht als Teil des Repository-Inhalts betrachtet.
Es gibt mehr Daten, wie den
.git/description
Ordner, der nicht geklont wird, genau wie die Hooks.Die Standard-Hooks, die im
hooks
Verzeichnis angezeigt werden, stammen aus demTEMPLATE_DIR
Es gibt dieses interessante
template
Feature auf Git.Daher kann ich entweder dieses "Clone the Hooks-Ding" ignorieren oder eine
rsync
Strategie wählen, die den Zwecken meines Spiegels entspricht (Backup + Quelle nur für andere Klone).Nun ... ich werde einfach das Klonen von Haken vergessen und mich an den
git remote update
Weg halten.clone
/update
-Prozess verwaltet werden, sondern auch Stashes, Rerere usw. Für ein striktes Backuprsync
oder ein gleichwertiges Backup wäre dies also der richtige Weg. Da dies in meinem Fall nicht wirklich notwendig ist (ich kann es mir leisten, keine Haken, Verstecke usw. zu haben), werde ich mich, wie gesagt, an die haltenremote update
.Vielen Dank! Ein bisschen von meinem eigenen "Git-Fu" verbessert ... :-)
quelle
Siehe hier: Git klont nicht alle Zweige auf nachfolgenden Klonen?
Wenn Sie dies wirklich wollen, indem Sie stattdessen Äste ziehen
push --mirror
, können Sie hier einen Blick darauf werfen:"fetch --all" in einem Git Bare Repository synchronisiert keine lokalen Zweige mit den entfernten
Diese Antwort enthält detaillierte Schritte, wie dies relativ einfach erreicht werden kann:
quelle
push
ist für mich keine Option, da ich dies auf der Empfangsseite tun muss (von wo aus sich der Klon befindet);pull
ist auch keine Option, da ein Spiegel-Repository ein nacktes Repository ist (kein funktionierender Baum, also kein "Ziehen") - es scheintgit remote update
tatsächlich alles zu tun (viel einfacher als die Antwort, auf die verwiesen wird) ... Wie auch immer, danke! Sicherlich gibt es wertvolle Informationen in den verknüpften Fragen / Antworten.rsync
in diesem Fall . Ich gehe auch davon aus, dass Sie Verstecke vergessen (siehe hier ) und Informationen erneut eingeben ...?