Lokale GIT Repositories mit einer USB Festplatte synchronisieren
Auf meinem Laptop habe ich einige Git Repositories, die den Fortschritt meiner Arbeiten speichern. Viele davon sind mit "Remote Repositories" synchronisiert. Ein Beispiel sind z.B. meine S9Y Entwicklungen, für die ich einen lokalen Checkout von GitHub Repositories habe, die ich lokal bearbeite und bei Fertigstellung meiner Änderungen wieder auf GitHub zurück pushe.
Für eigene Projekte könnte man sich auch ein GitHub Repository anlegen, aber wenn die Arbeiten nicht für die Allgemeinheit bestimmt sind, dann gibt es einen einfacheren Weg: Ich habe eine große USB Festplatte, die an der Dockingstation meines Laptops hängt. Immer wenn ich den Laptop nach hause bringe, hat dieser dann die Möglichkeit, Backups von Änderungen, die ich "unterwegs" gemacht habe, auf diese Platte zu speichern. Ähnliches wünsche ich mir für meine lokalen Git Repositories. Wie das geht, ist hier beschrieben, die Beschreibung dort funktionierte für mich allerdings nicht 100%ig, deshalb will ich hier den Weg beschreiben, der für mich funktioniert hat.
Bei dieser Beschreibung wird davon ausgegangen, dass das Arbeitsverzeichnis das lokale Repository ist (und zwar das Hauptverzeichnis, nicht das .git Unterverzeichnis, falls vorhanden). Es liegt in /path/to/local/repository. Für dieses bereits vorhandene Repository soll ein "Remote Repository" auf der USB Platte erzeugt werden, dass unter /path/to/usb/repository zu erreichen sein soll, wenn die Platte eingehängt ist.
Das Remote Repository wird als Clone des lokalen Repositories erzeugt:
cd /path/to/local/repository
mkdir /path/to/usb/repository.git
git clone --no-hardlinks --local --bare . /path/to/usb/repository.git
Jetzt wird das USB Repository als "Remote Repository" für das lokale Repository festgelegt und der lokale Branch master wird als Tracking Branch des USB master Branches konfiguriert (damit push und pull wie gewohnt funktionieren):
git remote add usb file:///path/to/usb/repository.git
git checkout master
git push --set-upstream usb master
Nun sollten die beiden Repositories / Branches so verknüpft sein, wie man es auch von Remote Repositories auf GitHub gewohnt ist. Im lokalen Repository sollten die beiden Befehle
git pull
git push
die Änderungen im lokalen Repository mit dem USB Repository synchen. Somit kann man "unterwegs" weiter an seinem Repository arbeiten und zu hause dann Sicherungen davon sehr einfach auf die USB Platte speichern.
Comments
Display comments as Linear | Threaded