GIT – jednostavan vodič za upotrebu, bez filozofiranja :-)

setup

Download git za OSX
Download git za Windows
Download git za Linux

kreiranje novog repozitorija

Kreirajte novi folder, otvorite ga i izvršite sledeću komandu:

git init

tako ste kreirali novi git repozitorijum

provera repozitorija

pravljenje radne kopije lokalno smeštene postižete komandom :

git clone /putanja do/repozitorija
kada je u pitanju udaljeni server, vaša komanda će biti

git clone korisnik@host:/putanja/do/repozirorija
na pravim podacima to bi izgledalo otprilike ovako

git clone https://github.com/laravel/laravel.git novaAplikacija

proces rada

vaš lokalni repozitorim sastoji se od tri stabla koji su održavani od git-a. Prvi je vaš radni direktorijum koji sadrži aktuelne fajlove. Drugi je index koji deluje kao polazna tačka (staging) i na kraju head koji ukazuje na poslednje izmene koje ste napravili.

add & commit (dodaj i završi)

Možete predložiti izmene (njihovo dodavanje u index ) koristeći komandu:
git add git add * git add .
Ovo je prvi i osnovni korak git radnog procesa. Da bi se ove promene stvarno izvršile, potrebno je koristiti komandu:

git commit -m "Poruka"
Sada je fajl postavljen na head lokalne kopije, ali još uvek ne na udaljenom serveru (remote repository)

Guranje promena

Promene su sada u head vaše lokalne kopije. Da bi ste izmene poslali na udaljeni server potrebno je izvršiti sledeću komandu:
git push origin master
Možete promeniti master u bilo koji drugi ogranak ukoliko želite tamo da pošaljete izmene. Ako niste klonirali postojeći repozitrorijum i želite da se povežete sa udaljenim serverom potrebno je da ga dodate:
git remote add orgin
Sada ste u mogućnosti da pogurate promene ga izabranom udaljenom serveru.

Granjanje (branching)

Grane se koriste da se razviju funkcionalnosti izolovane jedne od drugih. Glavna grana (master) je podrazumevana (default) grana kada kreirate repozitorijum. Koriste se i druge grane za razvoj i spajaju (merge) se na glavnu granu po završetku.

 

Kreiranje nove grane sa nazivom “feature_x” i prebacivanje na nju:
git checkout -b feature_x
prebacivanje nazad na master

git checkout master
i brisanje grane ponovo
git branch -d feature_x
grana nije dosptupna drugima, osim ako je ne pošaljete na udaljeni (remote) server
git push origin

Izmene i spajanje (update & merge)

Da bi ste ažurirali lokalni repozitorijum najnovijim izmena i spojili sam promenama sa udeljenih servera, izvršite:
git pull
Da bi ste spojili jednu granu i vašu aktivnu granu koristite:
git merge
U oba slučaja git pokušava automasko spajanje izmena. Nažalost, to nije uvek moguće a rezultat su konflikti. U tom slučaju ručno da izvršite spajanje ovih konflikata. Nakon izmena, morate ih označiti i spojiti komandom:
git add
Pre nego što izvršite spajanje, možete pregledati razlike koristeći
git diff

Označavanje (tagging)

preporučljivo je da napravite oznake za pojedine verzije softvera. Ovo je poznati koncept, koji takođe postoji i u SVN. Možete da kreirate novu oznaku pod nazivom 1.0.0 izvršavanjem komande:
git tag 1.0.0 085bb3bcb6
085bb3bcb6 stoji iza prvih 10 karaktera iza id-a izmene na koju želite da referencirate vašu oznaku (tag). ID izmene možete dobiti gledajući log.

log

u najednostavnijejm obliku, možete da proučavate istoriju repozitorijma koristeći:
git log
Možete dodati gomilu parametara da bi ste napravili da log izgleda kako želite. Da bi ste videli samo izmene određenog autora koristite:
git log --author=pera
Da bi ste videli zgusnut log koji staje u jednu liniju
git log --pretty=oneline
Ili možda želite da vidite stablo sa svim granama, ukrašeno imenima tagova i grana:
git log --graph --oneline --decorate --all
Pregled fajlova samo koji su izmenjeni
git log --name-status
Ovo su samo neke od mogućnosti parametara koje možete da koristite. Za više koristite
git log --help

Zameniti lokalne promene

U slučaju da se desi nešto loše, nešto što se skoro nikda ne dešava ;), moguće je izmeniti lokalne promene komadom:
git checkout --
ovo menja promene u vašem radnom stablu sa polsednjeg sadržaha u head. Promene već dodate u inde kao i novih fajlova će ostati. Ako umesto toga želite da se obustave svoje lokalne izmene i da se pokupe najnovije izemene sa servera koje će se usmeriti na lokalnu granu, to možete uraditi ovako:
git fetch origin git reset --hard origin/master