Week-1: Git - Sistem za verzionisanje koda

Git je alat koji je razvio Linus Torvalds kako bi olaksao vodjenje jednog velikog i kompleksnog projekta – Linux kernela. Git je de-facto postao standardni alat za verzionisanje koda.

Git - Osnovni pojmovi

  • Init – Inicijalizacija Git repozitorijuma. Inicijalizacija se obavlja komandom git init u direktorijumu u kojem se nalazi projekat.

  • Repozitoriji – Git repozitorijum je mesto gde se nalaze sve verzije projekta.

    • Remote – Remote je udaljeni/remote repozitorijum (npr. onaj koji ste kreirali na git serveru, GitHub-u etc.).

    • Local – Local je lokalni repozitorijum (incijaliziran na vasem lokalnom racunaru).

  • Add – Add je proces dodavanja fajlova u staging area. Fajlovi se dodaju komandom git add ili git add . (dodaje sve fajlove u trenutnom direktorijumu).

  • Staging Area – Staging area je mesto gde se nalaze fajlovi koji ce biti dodati u commit.

  • Commit – Commit je verzija projekta. Commit se sastoji od snapshot-a projekta i metapodataka koji opisuju commit.

  • Push – Push je proces slanja izmjena koda iz lokalnog repozitorijuma na udaljeni/remote repozitorijum (npr. na GitHub).

  • Branch – Branch je nezavisna linija/grana razvoja projekta. Branch se koristi da bi se razvijale nove funkcionalnosti neovisno od glavne main grane, Branch/Grana se moze spojiti sa drugom granom/branch-om.

  • Pull – Pull je proces preuzimanja izmjena koda iz udaljenog/remote repozitorijuma na lokalni repozitoriji (onaj na vasem racunaru).

  • Merge – Merge je proces spajanja dve grane/branch-a u jednu granu/branch.

  • Pull Request – Pull request je zahtjev za spajanje izmjena iz jedne grane/branch-a u drugu granu/branch.

  • Fork – Fork je kopija projekta. Fork se koristi da bi se napravila kopija postojeceg projekta i nastavio rad na njemu bez uticaja na originalni projekat. Fork se moze spojiti sa originalnim projektom koristeci Pull Request.

Osnovne Git Naredbe

$ git init #inicijalizacija git repozitorijuma

$ git status #prikaz statusa repozitorijuma

$ git add file-name #dodavanje fajla u staging area

$ git add . #dodavanje svih fajlova iz radnog direktorija ova u staging area

$ git commit -m"commit message" #kreiranje commit-a

$ git push #slanje izmjena na udaljeni/remote repozitorijum

$ git pull #preuzimanje izmjena sa udaljenog/remote repozitorijuma

$ git log #prikaz loga commit-ova

$ git log --oneline #prikaz loga commit-ova u jednoj liniji

$ git log --oneline --graph #prikaz loga commit-ova u jednoj liniji sa 
                            #grafickim prikazom

$ git clone repo-url #kloniranje projekta sa udaljenog/remote repozitorijuma

$ git remote -v #prikaz povezanih udaljenih/remote repozitorijuma

$ git branch #prikaz trenutne grane/branch-a unutar kojeg se nalazite

$ git branch branch-name #kreiranje nove grane/branch-a od trenutne 
                         #grane/branch-a na kojem se nalazite, 
                         #necete biti automatski prebaceni na novu granu/branch

$ git merge branch-name #spajanje grane/branch-a sa trenutnom granom/branch-om

$ git checkout branch-name #prebacivanje na drugu granu/branch

$ git remote add origin repo-url #povezivanje lokalnog repozitorijuma sa 
                                 #udaljenim/remote repozitorijumom

$ git config --global user.name "username" #podesavanje korisnickog imena --global 
                                           #znaci da ce ove postavke biti 
                                           #primjenjene na svaki repozitorijum na 
                                           #vasem racunaru

Git Cheat Sheet

Snimci predavanja

DevOps Mentorship Program - Week 1 - Git & GitHub (#tier-1-group-1)

DevOps Mentorship Program - Week 1 - Git & GitHub (#tier-1-group-2)

Materijali za ucenje

Korisni alati

Zadatak

Kreirajte javni GitHub repozitoriji unutar svog GitHub racuna i nazovite ga: ime-prezime-devops-mentorship. Kreirajte .gitignore i README.md fajlove. Nakon sto ste kreirali fajlove na vasem lokalnom racunaru postavite ih na GitHub repozitoriji koji ste ranije kreirali. Vas repozitoriji bi trebao da ima dvije grane main i development gdje cete sve izmjene na main granu dodavati praveci Pull Request sa development grane odnosno branch-a.

Dodatni materijali

Knjige

Video materijali

Blog Postovi

Last updated