Ich denke darüber nach, ein kleines Projekt zu starten und möchte seine Versionierung mit git machen.
Bitbucket scheint eine gute Option für mich mit ihrem kostenlosen Plan. Ich möchte es als Hauptwerkzeug für die Arbeit mit Git verwenden, da es nette Werkzeuge wie ein Webinterface, einen Mac OS-Client usw. enthält. Um jedoch einen höheren Schutz vor versehentlichen Schäden zu gewährleisten, die durch die Verwendung eines Drittanbieter-Dienstes verursacht werden können, möchte ich git auch auf meinem NAS als zweite Sicherungskopie des Repositorys installieren.
Nun ist meine Frage, ob es möglich ist, ein Repository auf zwei verschiedenen Hosts zu erstellen und diese dann synchron zu halten. Nehmen wir zum Beispiel einmal pro Woche an, ich aktualisiere das Repository auf meinem NAS so, dass es mit dem auf Bitbucket übereinstimmt. Wenn dann etwas mit Bitbucket passiert, habe ich immer noch das vollständige Repository mit der vollständigen Entwicklungshistorie auf meinem lokalen NAS-Speicher.
Und gibt es eine Möglichkeit, ein vorhandenes Repository mit vollem Verlauf in einen anderen Git-Service zu importieren?
Ich denke, das Spiegeln ist das, was ich brauche. Dieser Artikel scheint genau das zu beschreiben, was ich brauche. Und das eine als auch.
Ich glaube, dass es eine vollständige Kopie mit vollem Verlauf erstellt und sogar automatisch neue Versionen in die Repositorys auf beiden Hosts schreibt.
Habe ich recht?
Antworten:
Ja, das ist genau das Schöne an DVCS wie Git. Sie können eine beliebige Anzahl verschiedener Repos mit demselben Status wie bei Bitbucket oder Github verwenden.
Auch Ihre lokale Kopie (das Repository auf Ihrem Computer) ist normalerweise ein vollständiger Klon des Remote-Repos.
Das einzige, was Sie tun müssen, um mehrere Repos synchron zu halten, ist das Abrufen eines Repos (normalerweise Origin oder Upstream genannt) und das Abrufen der Sicherungskopien.
quelle
Hier ist eine getestete Lösung für das Problem: Automatic Sync 2 Remote Git Repositories
Ein einfaches Skript zum Synchronisieren von 2 entfernten Git-Repositories
Ich habe im Web nach einem einfachen Skript gesucht, das synchronisiert werden soll. 2 entfernte Repositories, aber ich konnte ein solches Skript nicht finden, auch wenn viele es zu suchen scheinen! Also habe ich 2 einfache Test-Repositorys erstellt und begonnen, ein solches Skript zu testen und zu erstellen.
Was sollte ein solches Skript tun?
Im Allgemeinen sind die Schritte dazu einfach: 1. Klonen Sie das erste Repository. 1. Fügen Sie das zweite Repository als zusätzliches Remote-Repository hinzu. 1. Holen Sie alles, was sich im zweiten Repository befindet. 1. Schieben Sie das aktualisierte lokale Repository auf das 2 Remote-Repositorys.
Das verbleibende Problem ist - was sind die richtigen Schalter für alle oben genannten Git-Befehle?
Hier ist es also...
2repos-sync.sh Gisp-Skript
HINWEIS - Dieses Skript löst keine Konflikte zwischen dem Repository-Inhalt!
quelle
Ich verwende ein privates GitLab, um alle meine Repositories zu speichern, so dass ich nur einen Ursprung habe, von dem ich während der täglichen Entwicklung schiebe und ziehe.
Bei Open Source-Projekten ist GitHub jedoch eine viel lebendigere Community. Wenn ich Community-Beiträge für meine Projekte annehmen möchte, benutze ich das Web-Hook-System von GitLab, um einen von mir ausgeführten Server zu pingen, der dann meine öffentlichen Repos auf GitHub aktualisiert.
Auf diese Weise kann ich GitHub als eine andere Remote-Instanz behandeln, die ich verwenden kann, wenn jemand einen Beitrag leistet - und dann füge ich --no-ff lokal zusammen. Außerdem wird festgelegt, wie alle meine primären und öffentlichen Repositorys die Änderungen verteilen.
quelle