tom000 - Personal Website - Strona główna
decor1 Tag: git decor2
13.102011
21:40
Komentarze: 0

Własny hosting repozytorium GIT

Rozproszona struktura systemu GIT umożliwia bardzo łatwe tworzenie zdalnych repozytoriów  kodu, z którym można synchronizować swoje lokalne repozytoria. Nie ma nawet potrzeby w tym celu stawiania i konfiguracji serwera HTTP do komunikacji z repozytorium, czy wymogu jakiegoś dodatkowego specjalnego oprogramowania. Wystarczy serwer z zainstalowanym GITem, oraz dostęp do tego serwera przez protokół SSH.

Zdalne repozytorium komunikujące się przez protokół SSH można utworzyć na kilka sposobów. Jednym z nich jest utworzenie nowego czystego repozytorium na zdalnym serwerze posługując się komendą 'git init' (znajdując się w folderze gdzie będą przechowywane jego pliki). Innym rozwiązaniem jest skopiowanie na serwer istniejącego repozytorium nie tracąc przy tym historii jego aktualnych commitów. Skopiować można ręcznie – kopiując folder, lub posługując się komendą 'git clone'.

Nowe repozytorium trzeba przekształcić w repozytorium publiczne, czyli przechowujące tylko wysłane do niego obiekty – bez możliwości lokalnej modyfikacji plików. Zrobić to można za pomocą polecenia: 

git config --bool core.bare true

lub, po prostu edytując plik konfiguracyjny w folderze repozytorium:

vim .git/config

i dodając flagę opcję bare = true w grupie [core].

Jeżeli w folderze z repozytorium zdalnego znajdują się jeszcze jakieś pliki, lub foldery poza samym '.git', można je usunąć – nie będą już potrzebne (właściwe repozytorium znajduje się właśnie w folderze '.git' i tam też są przechowywane wszystkie zatwierdzane do repozytorium zmiany).

Teraz pozostaje już tylko powiązanie lokalnego repozytorium ze zdalnym, czyli zapisanie informacji w tym lokalnym o ścieżce do zdalnego repozytorium. Służy do tego polecenie: 

git remote add origin ssh://remote-srv.pl/home/my_repo

gdzie origin oznacza nazwę zdalnego repozytorium (oczywiście można wybrać dowolną).

Aby wysłać zatwierdzone zmiany z lokalnego repozytorium do zdalnego można to zrobić poleceniem:

git push origin master

Origin jest zapamiętaną nazwą zdalnego repozytorium, master to natomiast główna gałąź repozytorium.

Aby pobrać zmiany ze zdalnego repozytorium (co będzie nieraz konieczne, jeżeli ze zdalnego repozytorium korzysta wielu użytkowników) można użyć polecenia:

git pull origin master

Znaczenie parametrów takie samo jak w przypadku polecenia push.

Copyleft (C) tom000.info 2004-2012. Some rights reserved.