Automatisch die Spiegel ein git-repository
Einer der Nebenwirkungen, die bei der Verwendung eines externen Subversion-repository wurde die erste automatische offsite-backups auf jedem commit.
Ich würde gerne erreichen das gleiche mit Git.
d.h. jeder commit auf meinem lokalen repository automatisch ein commit aus, auf eine externe ein, so dass die beiden repositories sind immer in sync.
Ich kann mir vorstellen, dass ein post-commit-hook wäre der Weg zu gehen. Hat jemand irgendwelche konkreten Beispiele?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schrieb ich einen post-commit-hook für genau diesen Zweck. Der Haken selbst ist einfach; fügen Sie einfach eine Datei mit dem Namen
post-commit
zu Ihrem.git/hooks/
- Verzeichnis mit folgendem Inhalt:Den
post-commit
Datei sollte ausführbar sein. Auch stellen Sie sicher, dass Sie ein geeignetes remote repository mit dem Namenmy_remote
für diesen Haken, um zu arbeiten.Ich habe auch einen symlink namens
post-merge
, die Punkte zupost-commit
. Dies ist optional. Wenn Sie dies tun werden Sie auto-sync nach wächst als gut.UPDATE: Wenn Sie sicherstellen möchten, dass Ihre server und Ihre Spiegel nicht aus dem Takt geraten, und sicherzustellen, dass alle Filialen werden auch gesichert, Ihre
post-commit
Haken verwenden können:Can people commit to the external repo?
: dies hängt davon ab, wie die externe repo konfiguriert ist. Wenn Sie möchten, eine nur-lese-Spiegels, dann können Sie verhindern, dass andere Personen von der Begehung.How would I check (and re-sync)
wenn niemand sonst ist verpflichtet, den repo-dann sehe ich nicht zu viele Möglichkeiten, wie die repos werden könnte out-of-sync. Wenn Sie das tun, dann gibt es immer Zusammenführen.push -f --mirror
so dass es immer gelingt (auch wenn es nicht-fastforward änderungen) und so wird es eine volle Spiegel mit alle refs. (Andernfalls, wenn Sie hinzufügen, einen neuen Zweig, es wird nicht geschoben bekommen, da es nicht existiert in den Spiegel, und die Standard-push-passenden Filialen.)