Privates, lokales GIT Repositorie als zentrales Repositorie spiegeln

Manchmal steht man vor dem Problem, ein auf der eigenen lokalen Maschine befindliches Repositorie zentral zur Verfügung zu stellen, damit man auch von anderen Systemen darauf zugreifen kann. Natürlich soll dabei die komplette Historie erhalten bleiben und der Checkout der Dateien vermieden werden. Gesucht ist also ein Weg, wie man ein bestehendes Repositorie in ein zentrales "bare Repository" umwandeln kann. Ausgangspunkt ist ein Repository "myrepo" auf demn lokalen System "localhost", das sich im Homerzeichnis des Nutzers, also in ~/myrepo befindet. Dieses soll auf die Maschine "Hostfoobar" dupliziert werden. Dabei wird nur der "master" Branch übertragen, weitere Branches verbleiben zunächst lokal. DerZugriff erfolgt per SSH als Nutzer "someuser", das Repository soll auf Hostfoobar" in dessen Homeverzeichnis in "~/GIT_REPOS/myrepo" liegen. Dazu muss auf Hostfoobar zunächst ein leeres Repositorie angelegt werden:
mkdir -p ~/GIT_REPOS/myrepo
cd ~/GIT_REPOS/myrepo
git --bare init
Danach kann auf localhost der Inhalt des master Branches in dieses neue Repository dupliziert werden:
cd ~/myrepo
git push ssh://someuser@Hostfoobar/~/GIT_REPOS/myrepo master
Fertig. Wer will kann von jetzt an eine Kopie erstellen mittels:
git clone someuser@Hostfoobar:~/GIT_REPOS/myrepo

Trackback URL for this post:

http://www.rdoering.net/trackback/27