Računarski praktikum II - Predavanje 02 - HTML forme. Git.

Слични документи
KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 10 Zvonimir Bujanović Luka Grubišić Vinko Petričević

Ekonomski fakultet u Osijeku Kolegij: Elektroničko i mobilno poslovanje Nositelj: prof. dr. sc. Branimir Dukić Nastavni materijali za vježbe 3. HTML o

Računarski praktikum I - Vježbe 01 - Uvod

Smjernice za korištenje sustava online prijava Ukoliko imate pristupno korisničko ime i lozinku ili ste navedeno dobili nakon zahtjeva za otvaranje no

Recuva CERT.hr-PUBDOC

OpenVPN GUI CERT.hr-PUBDOC

PuTTY CERT.hr-PUBDOC

CARNET Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nadzor razrednih knjiga tel: fax: mail:

Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba

Fra Serafina Schoena Rijeka MB: MBO: Žiro račun: kod RBA d.d. GSM:

Microsoft PowerPoint - 04_HTML_5.ppt [Compatibility Mode]

eOI Middleware Upute za instalaciju

VMC_upute_MacOS

Upute za korištenje EasyChair konferencijskog sustava HRO CIGRE 2019 Prijava referata Ako ste već koristili EasyChair na 13. Savjetovanju ili prije ta

8 2 upiti_izvjesca.indd

Upute za instaliranje WordPressa 1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Uputstvo za podešavanje za pristup eduroam servisu za Mac OS X Snow Leopard Copyright AMRES

KONFIGURACIJA MODEMA THOMPSON SpeedTouch 500 Series (530/530i/510/510i)

VODIČ ZA MODERNIJE POSLOVANJE CLOUD STORAGE Privatna učilišta i škole stranih jezika prelaze u cloud

Domaći zadatak - GUI (rok za sve grupe je ) Napraviti repozitorijum na GitHub-u koji se zove MenjacnicaGUI i postaviti Eclipse projekat menj

Računarski praktikum II - Predavanje 03 - Apache Web server

Microsoft Word - CCERT-PUBDOC doc

eredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prij

Document ID / Revision : 0419/1.1 ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata

Писање и превођење модула

Upute - JOPPD kreiranje obrasca

Biz web hosting

Trimble Access Software Upute za korištenje V2.0 Geomatika-Smolčak d.o.o.

Podešavanje za eduroam – Windows Vista operativni sistem

PowerPointova prezentacija

Često postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako

KAKO POHRANITI SVOJ RAD U REPOZITORIJ

CARNet Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za administratore tel: fax: mail: url:

Upute-podesavanj -accounta

Gdin Nikola Kovač

Microsoft Word - KORISNIČKA UPUTA za pripremu računala za rad s Fina potpisnim modulom_RSV_ doc

Microsoft Word - IP_Tables_programski_alat.doc

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

AKD KID Middleware Upute za Macintosh instalaciju V1.0

Microsoft PowerPoint - 01 Uvod u operativne sisteme.ppt

Upute za rad

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

Računarski praktikum I - Vježbe 09 - this, static

Web programiranje i primjene - Osnovni pojmovi WEB tehnologije korišteni u kolegiju

Uvod u računarstvo 2+2

Ministarstvo poljoprivrede Portal gospodarskog ribarstva Registracija prvih kupaca Uputa za korisnike

NIAS Projekt e-građani KORISNIČKA UPUTA za aplikaciju NIAS Verzija 1.1 Zagreb, srpanj 2014.

Microsoft PowerPoint - LB7-2_WCCF_2010.ppt

PDO

kriteriji ocjenjivanja - informatika 8

Slide 1

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

OBAVIJEST PZZ KORISNICIMA Poštovani korisnici programskog rješenja Last2000. Za Vas smo pripremili sljedeće novosti u programu: NOVOSTI

3 DNEVNI SEMINAR INTERNET POSLOVANJE TEME: 1. INTERNET POSLOVANJE 2. INTERNET MARKETING, INTERNET PR I ANALITIKA 3. UPRAVLJANJE SADRŽAJEM, DOMENE, HOS

Smjernice za korištenje HAVC portala Modul AV djela 1

Računarski praktikum I - Vježbe 11 - Funktori

Microsoft Word - PLC na Ethernet mrezi.doc

Prijava projektnih prijedloga putem ems-a Zoran Kalinić, IT MA Interreg Interreg IPA IPA CBC CBC HR-BA-ME HR-RS Informat

Slide 1

03 HTML - Programiranje Internet aplikacija

i pernica v3.qxp

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

MultiBoot Korisnički priručnik

Microsoft PowerPoint - LB7-2_WCCF_2012.ppt

OVO JE ZVANIČAN RCUB TEMPLATE: Normal

CPHP_19

Модел уређаја – I2C уређај

Korisničko uputstvo mobilne aplikacije Digitalni Kiosk 1

CARNet Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za administratore tel: fax: mail: url:

WINDOWS 8 Pre nego sto zapocnete instalaciju operativnog sistema potrebno je u vassem BIOS-u da podesite opciju bootanja sa CD/DVD rooma a zatim ubaci

Kontrola korisnickih racuna (UAC) pomaze tako sto sprecava potencijalno stetne programe da izvrse promene u vasem racunaru i obavestava vas pre izvrse

Sadržaj Wi-Fi MESHtar...4 Upute za povezivanje osnovnog paketa od dva uređaja...6 Savjeti i napredne postavke A) Preporuke za optimalno postavljanje u

Microsoft Word - privitak prijedloga odluke

Microsoft Word - CCERT-PUBDOC doc

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.

UPUTA za uvođenje JOPPD - prva faza

Microsoft Word - InveoP_01.docx

Microsoft Word - Uputstvo za upotrebu studentskih servisa.doc

CARNet Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nastavnike tel: fax: mail: url: carn

IBM EMM MAAS

Microsoft Word - X-Lite_EUnetUputstvo_Mart11.doc

Microsoft Word - Uputstvo za upotrebu studentskih servisa.doc

FAMILY SAFETY - PORODIČNA BEZBJEDNOST Program Family safety veoma je koristan za ograničavanje sadržaja i aplikacija koje učenici mogu koristiti na šk

P R O G R A M I R A N J E Z A I N T E R N E T Lab. vježba 2 PROGRAMIRANJE ZA INTERNET Upute za laboratorijske vježbe (izradio: Marin Bugarić, Frano Re

REPUBLIKA HRVATSKA MINISTARSTVO PRAVOSUĐA Korisničke upute e-građani aplikacije za elektronsko izdavanje posebnog uvjerenja iz kaznene evidencije Zagr

R u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s

Instalacija R-project softvera Univerzitet u Novom Sadu April 2018 Contents 1 Uvod 2 2 Instalacija R: Instalacija

Uredba o GDPR-u i Politika privatnosti Medical Elit d.o.o. Usklađivanje sa Uredbom o zaštiti privatnih podataka (GDPR) od i naša Politika p

UPUTSTVO ZA PODEŠAVANJE MOBILNIH UREĐAJA ZA MMS

Microsoft Word - WP_kolokvij_2_rjesenja.doc

Funkcionalna specifikacija za provođenje elektroničkog glasovanja

INTEGRIRANI KNJIŽNIČNI SUSTAV Sustav za podršku Upute za instalaciju: Aleph v22 ZAG

PDF = Potencijalno destruktivan fajl

Microsoft Word - Uputstvo za koristenje aplikacije GIPKO

GLAZBENA UČILICA Marko Beus Filozofski fakultet u Zagrebu 098/ Sažetak Glazbena učilica je projekt osmišljen kao nadopuna

Božo Online upute

Транскрипт:

Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM II Predavanje 02 - HTML forme. Git. 5. ožujka 2018. Sastavio: Zvonimir Bujanović

HTML FORME

HTML forme HTML forme služe za unos podataka od strane korisnika. Ti podaci se onda mogu proslijediti serveru (ili lokalnoj skripti) na obradu. 3

HTML forme Forme se sastoje od raznih elemenata: polja za unos teksta, lozinki, padajućih izbornika,... Svi ti elementi nalaze se unutar tag-a form. Najvažniji atributi taga form (zasad ignoriramo značenje): method može biti get ili post (zasad stavljamo na get) action ime skripte na strani servera koja će obraditi podatke iz forme. Primjer: 1 <form action="obradi.php" method="get"> 2 <label for="ime">ime:</label> 3 <input type="text" name="ime" id="ime" /> 4 <input type="submit" name="spremi" value="save" /> 5 </form> 4

Elementi HTML formi Većini elemenata forme treba definirati sljedeće atribute: name ime varijable koju će dobiti skripta za obradu forme. value inicijalna vrijednost tog elementa button klikabilni gumb Bitniji atributi: type tip gumba, može biti: submit gumb koji šalje formu na obradu, mora postojati. reset gumb koji resetira sve elemente u formi na inicijalne vrijednosti. button nema predefiniranu ulogu, na klik može reagirati JavaScript kod. name 1 <button name="gumb" type="submit">click me</button> 5

Elementi HTML formi input generički element za unos, ima puno podtipova. Atribut type određuje podtip, može biti (između ostalog): button ponovno gumb, bez predefinirane uloge. email HTML5 kontrola za unos e-mail adrese. file kontrola za izbor datoteke za upload. password kontrola za unos lozinke (prikazuje * kod unosa). text kontrola za unos jedne linije teksta (npr. ime, prezime) submit ponovno gumb za slanje forme skripti range HTML5 kontrola za odabir broja unutar raspona: Atribut min zadaje najmanji broj u rasponu. Atribut max zadaje najveći broj u rasponu. Atribut step zadaje korak. Za detalje vidi https://developer.mozilla.org/en-us/docs/web/html/element/input. 6

Elementi HTML formi input generički element za unos, ima puno podtipova. Atribut type određuje podtip, može biti (između ostalog): radio kontrola za izbor jedne od nekoliko ponuđenih opcija: Atributom value se definira naziv ponuđene opcije. Atributom checked se kaže da je ova opcija odabrana po defaultu. Svi elementi tipa radio koji imaju istu vrijednost atributa name se grupiraju; samo jedan od njih može biti odabran. checkbox kontrola za izbor jedne ili više od ponuđenih opcija: Atributom value se definira naziv ponuđene opcije. Atributom checked se kaže da je ova opcija odabrana po defaultu. Svi elementi tipa checkbox koji imaju istu vrijednost atributa name se grupiraju; istovremeno može ih biti i više odabrano (ili nijedan). 7

Elementi HTML formi select izbor jedne od nekoliko ponuđenih opcija u padajućem izborniku. Pojedine opcije se zadaju pomoću elementa option. 1 <select name="automobil"> 2 <option value="yugo">yugo 45</option> 3 <option value="fićo" selected>fićo</option> 4 <option value="stojadin">zastava 101</option> 5 </select> 8

Elementi HTML formi textarea unos većih količina teksta. Atributi: cols broj stupaca u polju za unos teksta. rows broj redaka u polju za unos teksta. 1 <textarea name="textarea" rows="10" cols="50"> 2 Ovdje napišite kratki sastavak. 3 </textarea> label oznaka povezana uz neki drugi element za unos podataka. Atribut for predstavlja id tog drugog elementa. 1 <label for="ime">ime:</label> 2 <input id="ime" name="ime" type="text" /> 9

Zadatak 1 Napravite HTML formu sa slike. Nemojte ju zasad uređivati pomoću CSS-a. Neka gumb Send šalje formu metodom get, a gumb Cancel neka resetira formu. Proučite URL dobiven klikom na Send. 10

KRATKI UVOD U GIT

Kratki uvod u Git Git je sustav za upravljanje izvornim kodom kojeg je razvio Linus Torvalds (engl. git = neugodna osoba ). Osnovna namjena: razvoj kompleksnog softvera od strane više developera, efikasno upravljanje verzijama koda. Dostupan za Windows, Linux, OS X. Brz, pouzdan i popularan; open-source. Skinuti ga možete sa službene stranice (www.git-scm.com). Instaliran je u praktikumima pod Linuxom. Korisna literatura: Git Tutorial, https://www.atlassian.com/git/tutorials/ T. Krajina: Uvod u Git, http://tkrajina.github.io/uvod-u-git/git.pdf Javno dostupni popularni git-serveri: GitHub https://github.com/ Bitbucket https://bitbucket.org/ Koristit ćemo Bitbucket besplatni privatni repozitoriji za do 5 korisnika. 12

Osnovni koncepti Radimo samo najjednostavnije koncepte za operativni rad, bez ulaženja u detalje. Repozitorij Skup datoteka koji su u sustavu verzioniranja i koji zajedno čini jedan (softverski) projekt. Globalni repozitorij nalazi se na git-serveru (Bitbucket). Lokalni repozitorij potpuna kopija globalnog koju svaki developer ima na svom računalu. Nakon instalacije git-a, potrebno je napraviti identifikaciju korisnika. git config --global user.name "Korisnik" git config --global user.email "korisnik@adresa.hr" Za svaku git-naredbu možemo dobiti pomoć sa git help ime_naredbe 13

Stvaranje novog globalnog repozitorija Za svaki novi projekt, jedan od developera treba stvoriti novi globalni repozitorij. Bitbucket: Repositories -> Create Repository Privatni repozitorij projekt je vidljiv samo developerima na projektu. U besplatnoj varijanti, max 5 developera na privatnom repozitoriju. Svima koji će sudjelovati na projektu možemo dati pristup (Read/Write/Admin). Settings -> Access management -> Users -> Add. Nakon toga, svaki developer na svoje računalo treba klonirati globalni repozitorij i tako dobiti svoj lokalni repozitorij. 14

Stvaranje novog lokalnog repozitorija kloniranje globalnog 1 Pozicioniramo se u direktorij u kojem želimo napraviti novi lokalni repozitorij (recimo, /home/user/repos). 2 git clone adresa_globalnog_repozitorija Stvara potpunu kopiju globalnog repozitorija na lokalnom računalu lokalni repozitorij. Bitbucket: Actions -> Clone -> copy/paste u terminal. 15

Dodavanje datoteka u sustav verzioniranja 1 Stvorimo novu datoteku unutar tekućeg direktorija (recimo, /home/user/repos/ime_datoteke). 2 git add ime_datoteke Uvodi datoteku ime_datoteke u sustav verzioniranja. Nije nužno da sve datoteke u softverskom projektu budu u sustavu verzioniranja tipično, dodajemo samo datoteke u kojima se nalazi kod ili neka konfuguracija projekta. Obično ne dodajemo izvršne ili binarne datoteke (.exe i slične). 3 git commit -a -m "Opis izmjene" Sprema nastale promjene svih datoteka u lokalni repozitorij. Commit se ne može spremiti bez opisa. DZ: Proučite čemu služi opcija -a. 4 git push Prosljeđuje napravljene promjene iz lokalne kopije repozitorija u globalni repozitorij. Prije ove naredbe je potrebno spremiti promjene u lokalni repozitorij (git add, git commit). 16

Pregled statusa datoteka git status Daje popis datoteka u repozitoriju i info je li na njima u međuvremenu napravljena neka izmjena. Kažemo da je datoteka promijenjena ako je tek nastala, izbrisana ili joj se promijenio sadržaj (nešto je dodano/izbrisano). git diff ime_datoteke Daje popis nastalih izmjena u datoteci ime_datoteke. git log Popis svih commitova s imenom korisnika koji je napravio commit, datumom i opisom. 17

Dohvaćanje promjena iz globalnog repozitorija git pull --rebase origin master Dohvaća promjene iz globalnog repozitorija koje su u međuvremenu napravili drugi developeri. 18

Primjer tijeka rada s git-om 1 Pero napravi globalni repozitorij, omogući pristup Ani. 2 Ana klonira globalni repozitorij. 3 Pero klonira globalni repozitorij. 4 Ana stvori novu datoteku dat.txt, napravi add+commit+push. 5 Pero napravi pull. 6 Pero modificira dat.txt, napravi commit+push. 7 Ana napravi pull. 8 Ana modificira dat.txt, stvori novu nova.txt, napravi add+commit+push 9 Pero napravi pull 10... Prije svakog push-a, treba dohvatiti izmjene u globalnom repozitoriju pomoću pull! 19

Zadatak 2 1 Napravite korisnički račun na Bitbucket-u. 2 Na Bitbucketu preko web-a stvorite novi privatni git repozitorij rp2-vjezbe01-username. 3 Napravite klona ovog globalnog repozitorija na lokalnom računalu. 4 Dodajte rješenje Zadatka 1 (forma.html) u repozitorij. 5 Dodajte opis projekta u datoteci readme.md u repozitorij. 6 Napravite commit + push na Bitbucket. 7 DZ: Stvorite klona ovog repozitorija i na svom računalu doma. 20

Konflikti Scenario I: 1 Ana izmijeni dat.txt, napravi commit+push. 2 Pero ne napravi prvo pull, nego izmjeni dat.txt i pokuša napraviti commit+push. 3 Git traži da se prvo napravi pull prije commit+push. 21

Konflikti Scenario I: 1 Ana izmijeni dat.txt, napravi commit+push. 2 Pero ne napravi prvo pull, nego izmjeni dat.txt i pokuša napraviti commit+push. 3 Git traži da se prvo napravi pull prije commit+push. Scenario II: 1 Ana izmijeni dat.txt, napravi commit+push. 2 Pero ne napravi prvo pull, nego izmjeni dat.txt. 3 Pero napravi pull. 4 Konflikt u Perinom radnom direktoriju. 21

Konflikt Rješavanje Ako je došlo do konflikta, ponekad ga git može sam automatski razriješiti. Npr. Ana je promijenila 3. liniju u dat.txt, a Pero je dodao novu liniju na kraj git uvaži i jednu i drugu modifikaciju. Konflikte nastale zbog većih modifikacija iste datoteke od strane oba developera treba riješiti manualno: 1 Došlo je do konflikta u Perinom lokalnom direktoriju, na datoteci dat.txt. 2 Prilikom git pull, git je spojio i Perinu i Aninu datoteku dat.txt u jednu. 3 Pero analizira i editira dat.txt i stvara konačnu verziju. 4 Pero: git add dat.txt (ponovno!) 5 Pero: git rebase --continue 6 Pero: git push 7 Konflikt je riješen, Perina konačna verzija ide u glob. repozitorij. 22

Centralized workflow Opisali smo tzv. centralized workflow. https://www.atlassian.com/git/tutorials/comparing-workflows/ centralized-workflow Taj pristup ima sljedeće probleme: 1 Ako developeri push-aju svaku i najmanju promjenu, onda je čitavi projekt spremljen u globalni repozitorij gotovo uvijek u neoperativnom stanju (npr. ne kompajlira se). 2 Ako developeri push-aju promjene tek kad su u potpunosti gotovi i testirali svoj dio posla, onda: Mogu nastati velike razlike između globalnog i lokalnog repozitorija puno kompliciranih konflikata. Developer ne može raditi backup svog koda u globalni repozitorij. Developer ne može raditi na više računala istovremeno. 23

Zadatak 3 1 Dozvolite pristup svom globalnom repozitoriju iz Zadatka 2 kolegi sa susjednog računala. 2 Neka kolega klonira vaš repozitorij na lokalno računalo. 3 Potrebno je pomoću CSS-a dobiti prikaz forme točno kao na slici uz Zadatak 1. Dogovorite se o id-ovima i klasama elemenata na slici. Jedan od vas neka uredi datoteku forma.html, a drugi stil.css. 4 Slijedite centralized workflow u nekoliko iteracija. 5 Napravite i razriješite barem jedan konflikt. 24

Feature branch workflow Nadogradnja: feature branch workflow Projekt sadrži glavnu granu tzv. master. Svaki put kada developer želi implementirati neku funkcionalnost (feature), stvorit će novu granu projekta. Nova grana sadrži potpunu kopiju master-a, ali je potpuno nezavisna od njega. Developer dodaje, mijenja, commit-a i push-a kod u svoju granu. I drugi developeri se mogu pridružiti razvoju nove grane. Kad je funkcionalnost u potpunosti gotova, developer obavijesti druge (tzv. pull request). Nakon revizije koda, nova grana se integrira u master i nestaje. 25

Rad s granama (branch) u git-u git checkout -b anin-dio-posla master Ako ne postoji, stvara novu granu s imenom anin-dio-posla. Nova grana sadrži potpunu kopiju svih datoteka iz trenutne verzije master grane. Ako grana već postoji, samo se prebacuje u tu granu u radnom direktoriju postavlja datoteke iz grane anin-dio-posla. U novu granu posve jednako kao u master dodajemo nove datoteke (add+commit+push; pull). Više developera može raditi na novoj grani konflikti. git push -u origin anin-dio-posla Iznimno, prvi push nove grane treba izgledati ovako. Kasnije je dovoljno samo git push. Lagano prebacivanje između grana: git checkout master git checkout anin-dio-posla 26

Pull request Developer je implementirao i testirao kod u svojoj grani želi ju spojiti s master granom. Pristojno je obavijestiti druge developere da veći komad koda dolazi u master. Pull request zamolba drugim developerima da analiziraju i komentiraju kod, nakon čega će doći do spajanja. Na web-stranici Bitbucket-a: Actions -> Create Pull Request Treba navesti osobe koje će pregledati kod koji se dodaje (Reviewers). Close Branch trebali li nakon spajanja u master ugasiti granu (obično da). Možemo vidjeti popis commit-ova i razlika (diff) datoteka iz grane i datoteka iz mastera. Osobe uključene u pull request mogu komentirati i mijenjati kod. Na kraju Pull Requests -> Approve. 27

Spajanje grane u master 1 Spremiti sve promjene u grani: commit, push. 2 Promijeniti granu u master: git checkout master. 3 Dohvatiti zadnju verziju mastera: git pull --rebase origin. 4 Napraviti spajanje grane u master: git pull origin anin-dio-posla. 5 Dojaviti spajanje u globalni repozitorij: git push. 6 Obrisati granu koja je bila spojena: git branch -d anin-dio-posla. Spajanje može napraviti bilo autor grane bilo reviewer. Konflikti kod spajanja se rješavaju kao i ranije: korekcija datoteke -> add -> commit -> push. git branch --list popis svih postojećih grana. Cilj: master uvijek sadrži korektan kod može se kompajlirati i radi nešto smisleno. 28

Zadatak 4 1 Dozvolite pristup svom globalnom repozitoriju iz Zadatka 2 kolegi sa susjednog računala. 2 Neka kolega klonira vaš repozitorij na lokalno računalo. 3 Potrebno je napraviti još dvije HTML stranice s formama. Jedna stranica neka sadrži upitnik o omiljenim knjigama. Druga stranica neka sadrži upitnik o omiljenim jelima. U forma.html dodajte linkove na obje stranice. 4 Slijedite feature branch workflow, svatko ima svoju granu. 5 Napravite uzajamnu reviziju koda preko Pull requestova. 6 Spojite obje grane u master. 29

Git šalabahter GUI za git: SourceTree https://www.sourcetreeapp.com/ SmartGit http://www.syntevo.com/smartgit/ 30