Git komande za početnike

U prošlom tekstu smo pisali šta je Git i kako se on koristi. U ovom tekstu ćemo predstaviti koje su po nama najkorisnije Git komande za početnike i objasniti kako da ih primenite u okviru standardnog Git workflow-a.
Pre toga da se podsetimo kako da primenite osnovni Git workflow kada radite u timu:
- kreirajte vaš repozitorijum na centralnom serveru (to će biti folder koji će biti praćem od strane Git softvera)
- preuzmite repozitoijum na vaš lokalni računar (klonirajte ga)
- dodajte fajlove na taj repozitorijum i commit-ujte ih. Git radi snapshot vašeg projekta (fajlova u repozitorijumu) kada god commit-ujete nešto i čuva istoriju snapshot-ova za kasniju upotrebu.
- upload-ujte izmenjene fajlove na server
- preuzmite sve fajlove koji su modifikovani od strane ostalih članova tima.
Ukratko ovo je osnovni workflow svakog Git projekta. Sada da vidimo kako to možemo da realizujemo pomoću Git komandi.
Kreirajte repozitorijum
Do sada već znate da Git po default-u ne prati svaki pojedinačni fajl na vašem računaru. Morate eksplicitno da mu date informaciju koji fajl želite da bude praćen. Da biste to uradili otvorite terminal i izvršite sledeću komandu
$ git init
Ova komanda praktično pretvara postojeći direktorijum u repozitorijum. U osnovi on govori Git-u da započne praćenje svih fajlova i foldera unutar repozitorijuma.
Obratite pažnju da sve Git komande počinju sa Git.
Razvojno okruženje Git-a se sastoji od tri sekcije. Važno je da ih ovde prođemo kako biste bolje razumeli sam koncept Git-a jer sve dalje aktivnosti zavise od njega.
- Radni direktorijum se odnosi na trenutno stanje fajlova i foldera unutar vašeg sistema fajlova. U ovom delu Git još uvek ne prati vaše fajlove.
- Staging area je mesto u koje smeštate fajlove pre nego ih sačuvate u repozitorijumu. To je kao neka privremena lokacija za vape foldere i fajlove pre nego pokrenete
commit
. Fajlove unutar staging area možete jednostavno dodavati i uklanjati. Ako ste modifikovali neke fajlove i želite da ih dodate u staging area jednostavno izvršite sledeću komandu:
$ git add .
Kao što smo već pomenuli u prethodnom tekstu, tačka (.) na kraju znači da su modifikovani svi fajlovi.
- Repozitorijum sadrži sve vaše commit-ovane fajlove. Sve ove informacije Git čuva u skrivenom folderu pod nazivom
.git.
Kada commit-ujete nešto, šta god da je u vašoj staging area se trajno čuva u repozitorijumu. Možda je lakše dacommit
shvatite kao checkpoint. Kada commit-ujete on poredi vaš prethodni checkpoint sa sadašnjim i tako čuva samo modifikovane fajlove. Dobra je praksa da prilikom commit-ovanja pokrenete komandu sa kratkom porukom šta je izmenjeno:
$ git commit –m “ovde unesite kratak opis izmene”
Commit
poruke su veoma korisne (nešto slično komentarisanim redovima prilikom pisanja koda), jer ostalim članovima tima daju više informacija o tome šta ste menjali).
Provera statusa
Git vam omogućava da jednostavno proverite koji se fajlovi prate unutar staging area. Da biste to uradili koristite sledeću komandu:
$ git status
Povezivanje lokalnog repozitorijuma sa serverom
U realnom scenariju, možda će vam biti lakše da prvo kreirate repozitorijum na nekom Git hosting provajderu (npr. GitHub), a zatim ga klonirate na vaš lokalni računar. Razlog tome je što se u tom slučaju automatski setuje i remote repozitorijum, što znači da su vaš lokalni i udaljeni repozitorijum tada povezani po default-u.
Ipak, ako ste kreirali repozitorijum prvo na vašem lokalnom računaru i nakon toga želte da ga povežete sa serverom, onda je potrebno da pokrenete sledeću komandu:
$ git remote add [remote_name] [remote_url]
Umesto [remote_name]
možete staviti šta god želite, ali neko opšteprihvaćeno pravilo je da se stavlja origin
. Sa druge strane remote_url
je putanja do vašeg Git repozitorijuma na serveru. Ova URL će vam biti dodeljena od strane vašeg Git hosting provajdera.
Evo primera kako bi gore napisana komanda moga da izgleda na konkretnom primeru:
$ git remote add origin https://github.com/nmh/bootstrap.git
Ukoliko želite da proverite koliko udaljenih repozitorijuma je povezano sa vašim lokalnim repozitorijumom, koristite sledeću komandu:
$ git remote –v
Upload-ujte izmene na server
Sada ste povezali vaš lokalni repozitorijum sa udaljenim. Vreme je da upload-ujete izmene na server. Evo sintakse koju koristite u ovom slučaju:
$ git push [remote_name] [branch_name]
Naravno remote_name i branch_name ćete zameniti pravim nazivima. Podrazumevano imamo samo jedan branch koji je poznatiji kao „master“. Branch-eve ćemo pomenuti malo kasnije.
Dakle, primer te komande bi mogao da izgleda ovako:
$ git push origin master
Preuzmite izmene sa servera
Već smo pomenuli da osim upload-a vaših izmena na server, isto tako možete preuzeti izmene urađene od strane članova vašeg tima. Njih možete preuzeti pomoću sledeće komande:
$ git pull [remote_name] [branch_name]
Opet, na jednom primeru to može da izgleda ovako:
$ git pull origin master
Branches
Git branching model je sličan standardnom modelu granjanja (branch = grana). On je posebno koristan kada želite da dodate novu funkcionalnost ili rešite neki bag u vašem projektu.
U suštini branch kreirate onda kada je potrebno da nešto testirate odvojeno. Da biste kreirali novi branch koristite ovu komandu:
$ git branch <branch_name>
Da biste izbrisali branch koristite sledeću komandu:
$ git branch – D <branch_name>
Spajanje (merge)
Pretpostavimo da ste napravili neke izmene u novom branch-u i želite da ih spojite sa vašim master branch-om. To možete uraditi tako što ćete izvesti operaciju spajanja (merge) koristeći sledeću komandu:
$ git merge <branch_name>
Drugim rečima, ova komanda se koristi za spajanje dva branch-a. Ukoliko je neki fajl izmenjen u oba branch-a, onda će doći do konflikta prilikom spajanja. U tom slučaju morate da ručno pregledate fajl i odaberete izmene koje želite da sačuvate, a ostale da uklonite.
To bi ujedno bilo sve što smo nameravali da vam predstavimo vezano za Git komande. Nadamo se da je sada jasnije kako možete da ga koristite i za koju namenu. Ako imate neka pitanja, budite slobodni da nam pišete u komentarima.
Pogledajte i ostale Git članke na našem blogu:
Odličan tekst.
Hvala, Darko!