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