środa, 13 kwietnia 2011

Zainicjowanie danymi zdalnego repozytorium w Git

Czasami, choć rzadko, musimy zainicjować danymi zdalne repozytorium. Jak zdążyłem się zorientować czytając artykuły o Git'cie, są one pisane dla raczej dla programisty, którego marzeniem jest podłączenie się do istniejącego projektu, ściągnięcie kodu i włożenie do niego własnych trzech groszy. To napisałem dla tych, którzy zakładają projekty.

Właśnie dlatego, że robi się to tak rzadko, łatwo zapomnieć procedurę. Potem znowu żmudne poszukiwania w sieci... a taki samouczek trudno znaleźć :-)

Krok 1

Utwórz na serwerze świeże repozytorium, udostępnij aby było widziane z zewnątrz, nadaj mu adres i utwórzy użytkownika z pełnymi prawami. Jak to zrobić? Mam to w nosie, bo u naszego dostawcy hostingowego robi to opcja w menu.

Krok 2

Zakładam, że na swoim lokalnym komputerze (a może laptopie?) masz już folder ze zrębami aplikacji do rozwijania. Przejdź do tego folderu i zainicjuj repozytorium:
> git init
Repozytorium utworzone, ale wciąż puste. Nie spiesz się z commitem! Jak go zrobisz teraz, to narobisz sobie zbędnej pracy. A po co? Pospieszyłeś się? A to pech, ale tu jest pomoc.

Krok 3

Utwórz plik .gitignore zanim dokonasz inicjalny commit. U mnie zazwyczaj odbywa się to tak:
> vim .gitignore
tmp/*
log/*
*.iml
*.ipr
*.iws
Oczywiście umieść tam własne wpisy wszystkich folderów niepotrzebnych w procesie tworzenia kodu.

Krok 4

Teraz czas na inicjalny commit:
> git add . 
kropka na końcu jest ważna!
> git commit -a -m 'initial commit'
Lokalnie już prawie wszystko masz, no może oprócz "remote"

Krok 5

Wpisujesz
> git remote
i co widzisz? Nic! Nic, bo system lokalny nie wie nic o naszym serwerze. Czas go o tym poinformować:
> git remote add origin ssh://uzytkownik@serwer_hostingowy.pl/
pamiętaj o kończącym slashu "/". Teraz po komendzie
> git remote
zobaczysz nasz "origin"

Krok 6

To już prawie wszystko, bo zostało jedynie wypchnąć kod na serwer:
> git push origin master
Podajesz hasło do użytkownika na serwerze i kod leeeeci..., aż doleciał.

Można tu jeszcze dodać

Krok 7

czyli synchronizowanie lokalnej gałęzi master z gałęzią zdalną, aby komenda git push albo git pull mogła być wywoływana bez parametrów:
git branch --set-upstream master origin/master
Teraz już tylko zakładasz swoim ludziom użytkowników do repozytorium na serwerze, rozsyłasz im dane do tych kont i delektujesz się bezproblemowym rozwojem aplikacji. Czego oczywiście Ci życzę, absolutnie nie wierząc w te brednie, które piszę :-)
Bo czy istnieje idealny świat z "bezproblemowym rozwojem aplikacji"?

Udało się. Zdalne repozytorium działa. Ja zazwyczaj jeszcze dodaję projekt do naszej instancji Redmine. Dzięki niej wszyscy wiedzą jaki jest plan rozwoju aplikacji, bugi do naprawienia, kalendarz wydarzeń itp. itd.

Powodzenia!


Brak komentarzy:

Prześlij komentarz