Skip to content

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.

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
This blog allows you to add audio comments using audioboo.fm. Create a new boo and enter the link to the page into the boo field.
record
If you enter your twitter name, your timeline will get linked to your comment.
Promote one of your recent articles
This blog allows you to announce one of your recent blog articles with your comment. Please enter your the corresponding URL as homepage and a selection box will pop up letting you choose an article. (Javascript needed)
(Requirements: 1 comments written)
Standard emoticons like :-) and ;-) are converted to images.
tweetbackcheck