Git je najpopularniji sustav za upravljanje verzijama u području razvoja softvera. Otvorenog je koda i aktivno ga od 2005. godine održava Linus Torvalds, poznati tvorac Linux. Danas nevjerojatan broj softverskih projekata (uključujući i komercijalne) koristi Git za upravljanje verzijama.
Git slijedi distribuiranu arhitekturu, što ga čini savršenim primjerom DVCS-a (distribuiranog sustava upravljanja verzijama). Koristeći Git, možemo istovremeno upravljati i lokalnim i udaljenim repozitorijem. U ovom vodiču prikazat ćemo kako konfigurirati automatsku implementaciju Git projekta s VPS-om.
Preduvjeti
U ovom vodiču postojat će jedan lokalni repozitorij i jedan udaljeni repozitorij na VPS-u. Lokalni repozitorij će slati promjene na udaljeni repozitorij. S udaljenog repozitorija možemo poslati promjene na beta ili live granu. Kako biste to postigli, prvo se trebate pobrinuti za nekoliko preduvjeta.
- Lokalno računalo i udaljeni poslužitelj, koji kao operacijski sustav koriste Ubuntu. Ovaj vodič prikazuje kako konfigurirati i postaviti Ubuntu poslužitelje.
- Oba su računala konfigurirana s Gitom.
Za uspostavljanje sigurne veze s VPS-om koristit ćemo SSH. Srećom, Git također podržava SSH kao protokol za povezivanje s udaljenim repozitorijima. Ovaj vodič istražuje konfiguriranje SSH-a za povezivanje s udaljenim poslužiteljima na Ubuntuu.
Konfiguriranje VPS-a
Na našem udaljenom poslužitelju imat ćemo sljedeću konfiguraciju:
- Live direktorij: /var/www/dummy-domain.com
- Repozitorij poslužitelja: /var/repo/site.git
S lokalnog računala, Git će slati ažuriranja na VPS repozitorij. Iz VPS repozitorija konfigurirat ćemo skriptu koju će Git koristiti za automatsko slanje u live direktorij. Također je moguće konfigurirati repozitorij za beta izdanja.
-
Stvaranje repozitorija
Povežite se s VPS-om i stvorite lokacije repozitorija:
|
1 2 3 |
cd /var sudo mkdir -pv repo && cd repo sudo mkdir -pv site.git && cd site.git |
Zatim pokrenite Git repozitorij:
|
1 |
sudo git init --bare |
Ovdje zastavica --bare označava da neće biti izvornih datoteka, već samo komponente za upravljanje verzijama.
-
Hooks
Zatim ćemo konfigurirati hooks za repozitorij. Svaki Git repozitorij sadrži mapu pod nazivom hooks. Sadrži primjere datoteka koje služe kao predložak za hooks i razne prilagođene radnje.
Prema Gitovoj službenoj dokumentaciji, postoje tri vrste hookova:
- pre-receive: Izvršava se čim poslužitelj primi zahtjev za slanje (push).
- post-receive: Izvršava se kada se zahtjev za slanje (push) dovrši.
- update: Slično kao pre-receive. Međutim, izvršava se jednom po grani.
S lokacije repozitorija pokrenite naredbu ls naredbu:
|
1 |
ls -l |
Promijenite trenutni direktorij u hooks:
|
1 |
cd hooks/ |
Sada stvorite skriptu post-receive skriptu:
|
1 |
sudo nano post-receive |
Unutar skripte unesite sljedeći kod. Svakako promijenite lokacije direktorija u skladu s tim:
|
1 2 |
#!/bin/sh git --work-tree=/var/www/dummy-domain.com --git-dir=/var/repo/site.git checkout -f |
Spremite datoteku i zatvorite uređivač. Postavite datoteku kao izvršnu:
|
1 |
sudo chmod +x post-receive |
Sada, svaki put kada se slanje (push) dovrši, Git će pogledati u skriptu post-receive i postaviti datoteke na odgovarajuće mjesto.
Konfiguriranje lokalnog računala
Udaljeno računalo spremno je za prihvaćanje dolaznih ažuriranja Git projekta. Zatim ćemo konfigurirati lokalni repozitorij da koristi VPS kao udaljeni Git poslužitelj.
Napravimo ogledni direktorij Git projekta:
Sada pokrenite repozitorij:
|
1 |
sudo git init |
Moramo deklarirati udaljenu putanju repozitorija. Ovdje ćemo se na udaljenu lokaciju referirati kao na live granu. Zatim pokrenite sljedeću naredbu:
|
1 |
sudo git remote add live ssh://<remote_username>@<remote_ip_address>/var/repo/site.git |
Isprobajmo to. Dodali smo shell skriptu u direktorij projekta:
Zatim dodajte datoteku u projekt i napravite commit:
|
1 2 |
sudo git add . sudo git commit -m "random commit" |
U sljedećoj naredbi, gurnut ćemo projekt na live poslužitelj:
|
1 |
sudo git push live master |
Git će se povezati s VPS-om pomoću SSH-a. Ako je SSH veza bila konfigurirana za korištenje lozinke, Git će tražiti lozinku za autentifikaciju.
Beta repozitorij
Što ako se projekt ne treba implementirati u jednom koraku? Možda zahtijeva daljnje testiranje unutar beta direktorija. Koristeći do sada opisanu metodu, možemo stvoriti još jednu granu na VPS-u, koja se naziva beta grana.
-
Konfiguriranje beta grane na VPS-u
Prvo moramo stvoriti direktorije za VPS. Povežite se na VPS i stvorite direktorij pod /var/www:
|
1 2 |
cd /var/www sudo mkdir beta |
Sada nam treba Git repozitorij koji će djelovati kao beta grana:
|
1 2 |
cd /var/repo sudo mkdir -pv beta.git && cd beta.git |
Pokrenite repozitorij:
|
1 |
sudo git init --bare |
Baš kao i prije, implementirajte post-receive skriptu:
|
1 2 |
cd hooks sudo nano post-receive |
Nakon toga unesite sljedeći kod:
|
1 2 |
#!/bin/sh git --work-tree=/var/www/beta --git-dir=/var/repo/beta.git checkout -f |
Spremite datoteku i zatvorite uređivač. Označite post-receive kao izvršnu datoteku:
|
1 |
sudo chmod +x post-receive |
-
Dodavanje beta repozitorija na lokalno računalo
Sada smo spremni dodati beta repozitorij u naš lokalni repozitorij. Unutar lokalnog direktorija projekta pokrenite sljedeću Git naredbu:
|
1 |
sudo git remote add beta ssh://<username>@<remote_ip_address>/var/repo/beta.git |
Voila! Lokalni repozitorij sada je konfiguriran s udaljenim beta repozitorijem. Pokušajte gurnuti promjene:
|
1 2 3 |
sudo git add . sudo git commit -m "beta version" sudo git push beta master |
-
Prijelaz s Beta na Live na VPS-u
Recimo da su sve promjene prikupljene u beta repozitorij. Kako gurnuti promjene u live repozitorij? Vrlo je jednostavno. Unutar beta repozitorija na VPS-u, dodajemo lokalni live repozitorij. Zatim jednostavno gurnemo beta izdanje u live repozitorij.
Povežite se na VPS i pokrenite sljedeće naredbe:
|
1 2 |
cd /var/repo/beta.git sudo git remote add live ../site.git |
Zatim možete gurnuti beta izdanje na live:
|
1 |
sudo git push live master |
Završne misli
Ovaj vodič uspješno prikazuje kako konfigurirati i koristiti VPS kao udaljeni repozitorij za vaš Git projekt. VPS može automatski implementirati najnoviji kod i datoteke bez ikakvog složenog procesa. Također može djelovati kao središte za suradnju između više razvojnih timova.
Uz pomoć Gita možete uspostaviti jednostavan mehanizam za automatsku implementaciju. Međutim, za pravilno upravljanje projektima preporučuje se korištenje nečeg poput GitLaba. Sljedeći vodič prikazuje instaliranje i implementaciju GitLaba na VPS-u koji upravlja s više projekata. Također možete pogledati kako postaviti GitLab Continuous Integration (CI) cjevovode na Ubuntu 20.04.
Sretno programiranje!















Komentari
Još nema komentara. Budite prvi.