4 Kreiranje i upravljanje repozitorijumima

Da bi korisnik uspešno koristio platformu GitHub potrebno je da razume pojmove poput kreiranja repozitorijuma, njihovog povezivanja na granu i upravljanja zahtevima za povlačenje.

Kreiranje repozitorijuma

Kreiranje repozitorijuma na GitHub platformi je veoma jednostavno. Prvo se u gornjem desnom uglu klikne na „+” i izabere se opcija novi repozitorijum (eng. New repository), kao što se može videti na slici 9. Ukoliko se neki fajl nalazi na računaru, a korisnik želi da ga postavi na platformu, ide se na opciju uvoza repozitorijuma (eng. Import repository). Nakon što se pojavi opcija za imenovanje repozitorijuma, korisnik ima mogućnost da repozitorijum označi kao javni (eng. Public) ili kao privatni (eng. Private).

Opcija javnog repozitorijuma omogućava da svaki korisnik na GitHub platformi može da vidi repozitorijum, dok sa druge strane opcija privatnog repozitorijuma omogućava da se repozitorijum deli samo sa određenom grupom korisnika. Međutim, nezavisno od izabrane opcije, drugi korisnici neće moći da vrše izmene nad tim fajlovima bez odobrenja. Dodatna korisna opcija je fajl sa uputstvom (eng. Readme file), u kojem se mogu pisati različite instrukcije i uputstva.

Slika 9: Kreiranje repozitorijuma

Kada je repozitorijum kreiran, otvara se nova sekcija unutar koje postoji niz različitih opcija. Za početak su najvažnije opcije koje se dobijaju klikom na dugme kod (eng. Code). Unutar nje se može kopirati link do repozitorijuma korisnika, koji se kasnije može slati drugima, odnosno može se skinuti i ZIP fajl. Opcije koje se dobijaju klikom na dugme kojim se dodaje fajl (eng. Add File) ima dve mogućnosti. Prva je da kreira novi fajl, a druga mogućnost odnosi se na dodavanje fajlova sa računara korisnika. Kada se novi fajl kreira, otvaraju se dve mogućnosti i to da se on doda trenutnoj grani (prva opcija) ili da se kreira nova grana za ovaj komit i podnese zahtev za povlačenje (druga opcija).

Slika 10: Opcija Code


Slika 11: Opcija File

Postoji i mogućnost da se navedu neke karakteristike fajla koji je kreiran, pomoću opcije dodatnog opisa (eng. Extended description)

Slika 12: Kreiranje novog repozitorijuma i povezivanje na granu

Kada se kreira, fajl je deo ove main grane. Međutim, tu postoji opcija da se postojeći fajlovi dodaju nekoj novoj grani, pri čemu se nova grana kreira iz main-a. Ukoliko se kasnije izvrši određena promena u novoj grani, to neće uticati na main granu, iz razloga što main grana predstavlja raniju verziju.

Slika 13: Kreiranje nove grane

Sve promene koje su izvršene u nekom fajlu, kao i korisnici koji su te promene izvršili, mogu se videti ako se izabere opcija istorije (eng. History).

Slika 14: Sve izmene jednog fajla unutar repozitorijuma

Ukoliko se nešto unutar repozitorijuma obriše, pojavljuje se znak „-” i crvena boja, a prilikom dodavanja nečega pojavljuje se znak „+” i zelena boja. Generalno, najbolji pregled svih izmena unutar jednog repozitorijuma je preko opcije upoređivanja i povlačenja zahteva (eng. Compare and pull request), koja se nalazi u okviru sekcije koda.

Slika 15: Izmene unutar repozitorijuma

Kada se nakon izmena u repozitorijumu pojavi čekirana opcija da je spajanje moguće (eng. Able to merge), to znači da se sve promene koje su izvršene u drugoj grani mogu primeniti i u main grani. Ukoliko korisnik ima veliki broj grana postoji mogućnost da izabere iz koje grane će se promene primenjivati i na samu main granu. To se postiže izborom opcije kreiranja zahteva za povlačenje (eng. Create pull request), koju je kasnije potrebno potvrditi. Na kraju će sve biti spojeno sa granom main.

Dodatno, postoji opcija u kojoj korisnik može da ukaže na potencijalne probleme koji mogu da nastanu (eng. Issues).

Upravljanje zahtevima za povlačenje

Kada korisnik kreira neki projekat sa kodom, može da dobije zahtev za povlačenje. Ukoliko je korisnik dodao još nekoliko saradnika koji imaju mogućnosti da nešto menjaju, dolazi se do različitih situacija kada stignu zahtevi za povlačenje. Oni mogu da dođu ili sa grane u račvi korisničkog repozitorijuma ili sa druge grane iz istog repozitorijuma. Jedina razlika je u tome što oni iz račve obično pripadaju drugim saradnicima, gde korisnik ne može da postavi na njihovu granu i oni ne mogu na korisničku, dok kod internih zahteva za povlačenje u opštem slučaju i korisnik i saradnici imaju pristup grani.

Kada neko napravi promene u kodu korisnika i pošalje zahtev za povlačenje, korisnik dobija mejl koji ga obaveštava o novom zahtevu za povlačenje. U mejlu se nalaze link ka zahtevu za povlačenje na platformi GitHub i nekoliko URL adresa koje se mogu koristiti iz komandne linije. Autor koda može da razgovara sa korisnikom koji je otvorio zahtev za povlačenje. Svaki put kada neko prokomentariše zahtev za povlačenje, autor koda dobija mejl obaveštenja i tako je obavešten o promenama koje se dešavaju. Svako od učesnika razgovora dobiće link ka zahtevu za povlačenje gde se određena aktivnost dešava.

Kada je kod sređen i autor želi da ga spoji, može da povuče kod i spoji ga lokalno ili to može da uradi pomoću komandne linije i komande git pull. Dodatno, grana može da se doda kao udaljeni repozitorijum koji se preuzme i tek onda spaja. Ako je spajanje trivijalno, može se uraditi samo klikom na dugme spajanja (eng. Merge) na platformi GitHub.

Ukoliko autor ne želi da spoji promene, može jednostavno da zatvori zahtev za povlačenje i korisnik koji je poslao zahtev za povlačenje biće obavešten da njegovo spajanje nije uspelo. Korisnik ne mora kao zahteve za povlačenje otvarati one koji kao odredište imaju glavnu ili master granu, već može da se otvori zahtev za povlačenje koji kao odredište ima bilo koju granu na mreži. Dodatno, odredište može biti i drugi zahtev za povlačenje na mreži.

Prethodna lekcija Povratak na početak kursa Sledeća lekcija