Git (3. deo): Terminologija
Autor: Zlatan Vasović
Često su termini koji se koriste u Git-u nepoznati. U prošlom broju smo napisali mali Git rečnik ali on nije dovoljan ako želimo da se ozbiljnije bavimo programskim razvojem uz Git SCM.
Git izrazi
Krenimo redom.
Commit predstavlja skup svih izmena u skladištu programskih paketa u određeno vreme koje je korisnik grupisao. Svaku datoteku za koju želimo da se nađe u sledećem commit-u moramo dodati komandom git add. Ako smo izmenili dve datoteke – na primer test.txt i text.txt, ne moramo ih obe dodati u sledeći commit. Dakle, commit je samo stvar naše volje. Sve datoteke koje su u trenutnom commit-u su spremne za objavljivanje komandom git push.
Gitignore je izraz za datoteku u kojoj upisivanjem određenog teksta možemo ignorisati neželjene datoteke ili fascikle. Obično su to backup datoteke (*~) ili specifične datoteke za neki editor koje su nepotrebne. Primere .gitignore datoteka možemo naći u github/gitignore skladištu programskih paketa (https://github.com/github/gitignore).
Merge predstavlja prebacivanje određenih commit-a između dve razvojne grane. Te dve razvojne grane mogu biti i u istom i u različitim skladištima programskih paketa.
Pull request je, najjednostavnije rečeno, zahtev za merge.
Programerski termini
Programerski termini su naravno u skladu sa Git-om.
Fork predstavlja kopiju nekog programa koji sadrži izmene. Dakle, ako samo kopiramo neko skladište programskih paketa a ne izmenimo ništa, onda to nije pravi fork.
Alpha je naziv za ranu verziju programa koja je uglavnom vrlo nestabilna.
Beta je naziv za probnu verziju programa. Takođe može biti nestabilna.
RC (Release Candidate) je izdanje programa koji je kandidat za novu verziju programa. Može biti i stabilan i nestabilan.
WIP (Work In Progress) je razvojna verzija koja uglavnom ima određen rok za završavanje. Samo ime kaže da je izrada (zapravo razvoj) u toku… WIP princip razvoja je vrlo jednostavan – samo postoji WIP koji je razvojna verzija nakon koje sledi nova verzija.
Nazivi
Postoji nekoliko naziva koji se često primenjuju u Git skladištima programskih paketa. Pišu se malim slovima, osim na početku rečenice. Ne moramo ih koristiti ako ne želimo.
Master je podrazumevani naziv glavne razvojne grane. Predstavlja stabilnu i zvaničnu razvojnu granu. Ne moramo ga stavljati kao naziv razvojne grane u komandama, upravo jer je podrazumevan. Mi možemo podesiti neku drugu razvojnu granu kao podrazumevanu umesto master-a.
Development je klasičan naziv za pravu razvojnu granu koja je često nestabilna. Uglavnom kada postane stabilna, onda se sav razvoj na njoj prenosi i na podrazumevanu granu pull request-om.
Naziv podrazumevanog remote-a je origin. On predstavlja podrazumevanu „vrednost“ koja je prisutna kada kopirate skladište programskih paketa na lokalni disk. Podrazumevani remote možemo promeniti ali origin će uvek ostati podrazumevan kada ponovo kopiramo skladište programskih paketa.
Upstream predstavlja remote koji se koristi za merge između povezanih skladišta programskih paketa. Da bismo ovo lakše razumeli uzećemo za primer jedno obično skladište programskih paketa i njegov fork. Recimo da želimo da fork ažuriramo uz „obično skladište programskih paketa“, tj. prenesemo sve izmene koje ne postoje u fork-u. Napravićemo remote pod nazivom upstream koji će imati adresu „običnog skladišta programskih paketa“ i uraditi pull.