Skip to content

Latest commit

 

History

History
139 lines (96 loc) · 7.36 KB

File metadata and controls

139 lines (96 loc) · 7.36 KB

📝 Class notes

📅 Date: 14.02.2023.

Git Intro

Git je alat koji je razvio Linus Torvalds da bi mu 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.
  • Repository – 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.

Git

Install Git on Windows

Git za Windows OS mozete preuzeti sa sljedeceg linka.

Preuzmite PowerShell da bi dobili terminal pogodniji za rad. Na sljedecem linku mozete ispratiti kako da kreirate ssh kljuc i podesiti vas GitHub profil za izvrsavanje git naredbi i autentifikaciju na udaljeni Git repozitoriji uz pomoc privatnog i javnog kljuca.

Mozete preuzeti i Windows Terminal

Kliknite za dodatne informacije git alata unutar Windows terminala

Komande da podesite PowerShell na verziju PS 7 i da se prikazuje ime branch-a u kojem se trenutno nalazite dok radite sa Git-om:

  • Prvo preimenujte glavnu granu/branch iz master u main

    git branch -m master main
    git status
  • Komanda za upgrade PS 5.1 u verziju PS 7 - u PS mora imati administratororske privilegije (i.e: Run PS as Administrator)

    iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
  • Komande za prikaz imena branch-a/grane - (Run PS as Administrator)

  > Import-Module posh-git -Scope AllUsers
  > Add-PoshGitToProfile -AllHosts

Install Git on MacOS

MacOS je Unix operativni sistem i njegov terminal je vec pogodan za koristenje. Da bi instalirali git na vasem Mac-u mozete korisiti brew paket menadzer.

$ brew install git

Na linku mozete ispratiti kako da kreirate ssh kljuc i podesite vas GitHub profil da mozete izvrsavati git commande.

$ ssh-keygen -t ed25519 -C "sqlheisenberg@gmail.com" #kreiranje ssh kljuca za korisnika sa email adresom sqlheisenberg@gmail.com
# Kad na ekranu dobijete poruku Generating public/private ed25519 key pair odgovorite sa enter na pitanja koja ce se pojaviti
# Ovo ce kreirati privatni i javni ssh kljuc u direktorijumu ~/.ssh/ sa nazivom id_ed25519 i id_ed25519.pub
$ cat .ssh/id_ed25519.pub #Ispisite vas javni kljuc na ekran i kopirajte ga a zatim upisite u vas GitHub profil

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

alt Git Cheat Sheet

📹 Session recordings

📖 Learning materials

⚒️ Useful Tools

⏩ Homework Task
⏩ Additional Reading
⏩ HOME - README.md
⏩ Sadrzaj - DevOps Learning Path