Prvi koraci u Git-u

Da li se možda u radu susrećete sa potrebom da često menjate jedan te isti fajl? I onda morate da sačuvate svaku verziju tog fajla kako biste mogli da pratite promene, a na kraju završite sa fajlom pod nazivom final-final-final-nemoguvise.doc? A zamislite da radite zajedno sa svojim kolegama na jednom velikom projektu i da svako od vas mora da unese izmene u veliki broj fajlova. Kako se ne bi stvorila kaša od tog projekta, u pomoć dolazi sistem za kontrolu verzije (ili sistem za verzionisanje koda).

Kontrola verzije

Sistem kontrole verzija koristi se za čuvanje promena u fajlu ili zbirci fajlova. Omogućava vam da sačuvate istoriju promena, vratite se na prethodnu verziju, dodate opis promena (na primer: kako i zašto je promena izvršena i još mnogo toga).

Kada mnogo ljudi radi na projektu sa više fajlova, jedan od problema koji se javljaju kada ovakav sistem ne postoji jeste uzimanje u obzir to da se vrše promenе u različitim delovima projekta od strane svih učesnika.

Sistem kontrole verzija razvijao se tokom godina, počevši od lokalnog sistema za kontrolu verzija (poput RCS-a) gde su fajlovi bili na lokalnom računaru programera i samo on je mogao raditi na njima.

Zatim dolazi centralizovani sistem kontrole verzija (CVS, Subversion) koji mnogim korisnicima omogućava rad na jednom projektu. Projekat je smešten na jednom centralnom računaru sa kojim se komunicira.

Najveći nedostatak ova dva sistema je to što u slučaju kvara na centralnom ili lokalnom računaru, svi podaci o projektu mogu biti izgubljeni jer se nalaze na jednom fizičkom mestu. Konačno, pojavljuje se decentralizovani sistem kontrole verzija (Darcs, Git, Mercurial, Fossil, Veracity) koji rešava ovaj problem. Decentralizovanim sistemom kontrole verzija, projekat se preuzima i kopira lokalno na računar svakog učesnika, stvarajući rezervnu kopiju. Ako je potrebno, projekat se može povratiti iz lokalne kopije jednog od korisnika.

Šta je to Git?

Git je jedan od najpoznatijih i najkorišćenijih decentralizovanih sistema za kontrolu verzija. Pomoću Gita-a, mnogi korisnici mogu istovremeno raditi na istoj datoteci bez izazivanja zabune i haosa u sadržaju datoteke.

Git je nastao u aprilu 2005. godine i razvijen je od strane Linusa Torvaldsa (čoveka iza Linuks jezgra). Torvalds je kreirao Git kako bi ga koristio za razvoj svog projekta Linuks jezgro. Od tada do danas, Git se razvija i poboljšava od strane mnogih korisnika. Sam Git projekat koristi ovaj sistem, zbog toga što mnogi njegovi programeri menjaju njegov kod (C, Shell).

Git je stvoren sa idejom da bude brz, jednostavnog dizajna, sa stabilnom podrškom za razgranat razvoj – hiljade paralelnih grana (branches), potpuno decentralizovanu organizaciju i mogućnost efikasne podrške velikim projektima (kao što je Linuks jezgro).

Neki od projekata koji koriste Git su Linuks Kernel, KVM, Bacula, CakePHP, Drupal, WordPress, FFmpeg, GNOME, phpMyAdmin, Ruby on Rails i mnogi drugi. Među projektima koji koriste Mercurial su Dovecot, nginx, OpenOffice, Python, rpm, Vim i drugi.

Git server

Za Git server možete da koristite svoj cPanel hosting nalog. Kroz Git Version Control u cPanelu, možete kreirati Git repozitorijum za daljinsko povezivanje sa svojim uređajem.

Na internetu se mogu naći i druge usluge koje nude Git server kao što su GitHub, Bitbucket i GitLab.

Najjednostavniji Git server, bez instaliranja dodatne aplikacije, može da se napravi samo sa SSH pristupom i pripremljenim Git repozitorijumom na serveru. Takav osnovni Git server može da se koristi za privatni projekat sa malo korisnika.

Postoje i Git server aplikacije koje se mogu instalirati na VPS server. Jedna veoma korišćena aplikacija koja veoma podseća na GitHub je GitLab. Takve aplikacije nude metode upravljanja kao što su kontrola pristupa, upravljanje većim brojem Git repozitorijuma, pregled preko veba i još mnogo toga.

Git klijenti

Pored standardnog načina rada sa Gitom – korišćenjem komandi u terminalu, postoje i grafički Git klijenti koji se instaliraju lokalno na vašem računaru.

Tekstualni Git klijenti se koriste preko šela operativnog sistema i zbog toga ih možete instalirati i koristiti putem terminala. Na primer za sisteme zasnovane na Linuksu možete da instalirate Git sa:

yum install git

ili

apt-get install git

Korisnici Windows-a mogu da instaliraju Git pomoću GitHub grafičkog klijenta, koji takođe sadrži Git tekstualni klijent (Git Shell).

Git klijent se takođe može koristiti putem naloga na deljenom hostingu. Pogledajte šta treba da uradite da biste koristili Git klijent na svom hosting nalogu.

Da počnemo sa Git-om

Kako biste započeli rad sa Git-om, morate poznavati osnovne i najčešće korišćene komande.

Osnovni pojmovi i komande

git repository (repozitorijum)

Radni direktorijum projekta. Možete kreirati Git repozitorijum iz bilo kog direktorijuma koji se nalazi lokalno na vašem računaru. Takođe, možete da klonirate repozitorijum koji se nalazi na drugom računaru.

git branch (grana, klon)

Git projekat stvara strukturu drveta sa jednom glavnom granom koja se najčešće naziva master. Sve što se razvija i menja se vrši u drugim granama koje se pre ili kasnije spajaju sa glavnom granom i tako se rađa nova verzija projekta. Da bi se razvili različiti aspekti projekta mogu se stvoriti posebne grane kao što su development, features, hotfixes i još mnogo toga.

git tag

Svaka finalizirana i odobrena promena spaja se s master-om i predstavlja različitu verziju projekta. Promena se može označiti s drugom oznakom, na primer započinjući s v. 1.0.0.

git commit

Objavljivanje promena. Kada promenite sadržaj fajla koja se nalazi u direktorijumu projekta, moraćete da podnesete zahtev za objavljivanje tih promena (commit). Ako koristite grafički Git klijent, Git će vam pokazati da je izvršena promena i pitaće vas da li želite da napravite commit (objavljivanje) ove promene.

git pull

Preuzimanje promene iz jednog u drugi repozitorijum/granu.

git push

Slanje promene udaljenom repozitorijumu.

git merge

Spajanje promena u jednu granu ili spajanje u odvojene grane. Nakon što se sačuvaju izmene u fajlovima u grani (branch), možete kreirati pull zahtev. Ovaj zahtev će biti u statusu čekanja odobrenja. Nakon odobrenja, odabrana grana će se spojiti pomoću git merge sa drugom odabranom granom.

Kreiranje lokalnog Git repozitorijuma

Nakon što ste instalirali Git na svoj računar, kroz Git shell pristupite direktorijumu u kome želite da napravite Git repozitorijum. Direktorijum može da sadrži fajlove.

Izvršite komandu:

git init

U direktorijumu će se pojaviti poddirektorijum .git, koji sadrži sistemske datoteke Git-a.

Kreirajte ili prekopirajte fajl u direktorijum, na primer test.txt i izvršite u terminalu:

git status

Videćete obaveštenje:

Untracked files: (use „git add …“ to include in what will be committed)

To znači da je Git otkrio ovu datoteku, ali nije upućen da li da je nadgleda za promene. Pomoću komande add dodajete promene u Git indeks za koje smatrate da su spremne za objavu (commit). Da biste pripremili izmene za publikaciju, pokrenite naredbu:

git add test.txt

I nakon ovoga, objavite promene sa:

git commit -m "test test"

“test test” je napomena, sasvim kratak opis promene. Kada budete pregledali istoriju promena, videćete ove napomene, zbog toga bi trebalo da upotrebite smislen opis promena umesto ovakvog teksta.

Napomena: Lokalni Git repozitorijum možete kreirati na vašem uređaju, nakon što instalirate Git na njemu. Na primer, možete instalirati Git GUI/Bash za Windows. Pored svog uređaja, Git repozitorijum možete da kreirate na hosting nalogu putem Git Version Control-a u cPanelu ili putem SSH pristupa.

Važno: Nisu svi Git projekti isti, sa istim procesom grananja i razvoja. Svaki projekat može imati različite zahteve za upotrebu grana i proces ažuriranja i sprovođenja promena. Pre nego što klonirate projekat i počnete da doprinosite njegovom razvoju, proverite dokumentaciju i fajl sa uputstvima README.md.

Zanimljivo: Na internetu postoji dosta zanimljivih izvora za učenje Git-a. Jedan od njih vas uči kako da radite sa njim za samo 15 minuta: Got 15 minutes and want to learn Git? Ako i napravite neku grešku, uvek možete da je ispravite i iščupate se iz neprilike pomoću ovog sajta: ohshitgit.com


Sanja Dinić
Sanja Dinić
Sanja je deo korisničke podrške SuperHosting.RS-a. Voli i pse i mačke. Smatra da ako hoćeš nešto da dobro objasniš, treba da ga objasniš jednostavno. Ljubitelj tamnog piva i još tamnije kafe. Učenje stranih jezika joj nije bilo dovoljno zanimljivo, pa je prešla na programske.
5 1 глас
.
Pretplata
Obavesti me ukoliko
guest

0 Comments
Уграђене повратне информације
Погледај све коментаре