LAB0. Uspostava početna repozitorija


Pripremiti razvojnu okolinu

Prema uputama ili na sličan način pripremiti razvojno okruženje. Provjeriti je li sve instalirano i radi. Npr. naredbama:
$ cd ~ #ili gdje želite smjestiti kod
$ git clone --depth=1 https://github.com/ljelenkovic/Benu.git osur-lab
$ cd osur-lab
$ rm -rf .git
$ cd Chapter_08_Processes/06_Processes
$ make qemu
Ako sve radi (i pokrene se) onda prekinuti simulaciju (Ctrl+C) te obrisati privremeno izrađene datoteke: make cleanall. Ako nešto ne radi (nedostaje neki alat) pogledati upute za pripremu razvojne okoline.
$ make cleanall && cd ../..
 

Osnovni rad s git-om

Pogledati upute Osnovno o Git-u.

Više se može pronaći u skripti, ali i na webu, iz drugih izvora, npr. link1, link2, link3.

 

Napraviti korisnički račun i repozitorij na github ili gitlab

 

Raditi promjene - izrađivati laboratorijske vježbe

Svaku laboratorijsku vježbu raditi u zasebnoj grani labX (X je 1,2,3,4,5 ili 6).

Ukratko o granama u gitu

Mehanizam grananja je složen. Pojednostavljeno je to "paralelni svijet" stanja koda. Stvaranje nove grane je stvaranje "paralelnog svijeta" koji je u trenutku stvaranja jednak grani iz koje je stvoren (slično kao fork()).

Prebacivanje s trenutne grane na granu druga-grana radi se sa:

git checkout druga-grana
Prije promjene grane treba trenutnu pohraniti, ako je mijenjana (ili ostaviti promjene za novu granu).

Osnovna namjena grana jest ispitivanje neke nove ideje/funkcionalnosti i sl. Ako bi ta ideja bila dobra onda bi se prihvatila (spojila s glavnom granom, tj. s master). Inače se lako odbaci (ili ostavi neka stoji jer ne smeta).

Nova grana se može stvoriti sa:

$ git branch ime-grane
te sa:
$ git checkout -b ime-grane
Razlika je što u drugom slučaju se odmah prebacujemo u tu granu.

Stvaranje grane lab1 i prelazak na tu granu:
$ git checkout -b lab1
Promjena grane s trenutne na neku drugu (npr. na postojeću lab2):
$ git checkout lab2
Prije promjene grane "spremiti" napravljene promjene! Npr. ako se radi na grani lab1 i želimo otići na granu lab2:
$ git status
# On branch lab1
Ako ima promjena, tj. ne kaže: nothing to commit (working directory clean), onda prvo spremiti promjenu:
git add -A   #ali prije obrisati nepotrebne datoteke!!!
[...]
$ git commit -m "nedovrseno"
[...]
$ git checkout lab2
[...]
Prilikom stvaranja nove grane, nova grana "nasljeđuje" zatečeno stanje (zatečeno u trenutnoj grani, tj. u radnom direktoriju (kao i kod forka)).

Grane u laboratorijskim vježbama

Početna grana naziva se master i ona mora ostati nepromijenjena. Zadatke treba rješavati u zasebnim granama (lab1-lab6). Na taj način se vrlo jednostavno prate promjene napravljene za pojedinu vježbu (npr. git diff master..lab1).

Spremanje aktivne grane u zajednički repozitorij radi se sa:

$ git push origin ime-grane
Pretpostavka je da je lokalno bila aktivna grana ime-grane. Inače će se trenutno aktivna grana pohraniti u repozitorij kao grana ime-grane!

Spremanje svih grana (odjednom) može se napraviti sa:

$ git push --all origin
Novije verzije git klijenta omogućavaju postavljanje opcije da git push automatski pohranjuje sve grane na poslužitelj.

Dohvat koda iz repozitorija u kojem ide više grana ovisi je li se repozitorij dohvaća prvi puta ili ažurira postojeći. Ako se dohvaća prvi puta naredbom git clone, onda će se dohvatiti i sve grane. Ako već postoji lokalna kopija, ali nije ažurna, onda se grane mogu dohvaćati jedna po jedna (sa git pull ime-grane) ili sve odjednom:
$ git remote update
$ git pull --all
 

Ukratko - što sve treba napraviti za LAB0

  1. Napraviti privatni repozitorij na gitlab/github-u.
  2. Početni sadržaj repozitorija prema opisanom (kod, grane lab1-lab6 u početku jednake grani master).
  3. Dodati u projekt korisnika ljelenkovic.
 

Dodatne upute