GitHub za početnike: Kompletan vodič od prvog commita do projekta

GitHub za početnike

GitHub je danas standardni alat za svakog developera, bez obzira radi li se o malom osobnom projektu ili velikom timskom razvoju. Problem je što za nekoga koji prvi put otvara terminal, pojmovi kao “commit”, “push”, “branch” i “merge” zvuče kao strani jezik. U ovom vodiču prolazimo kroz cijeli put – od instalacije Gita, preko prvog repozitorija i commita, do rada s branchovima i objavljivanja vlastitog projekta na GitHubu – korak po korak, bez pretpostavke da već znate što je verzioniranje koda.


1. Što je Git, a što GitHub?

Ova dva pojma se često miješaju, ali razlika je jednostavna:

  • Git je alat za verzioniranje koda – program koji se instalira na vaše računalo i pratite promjene u datotekama kroz vrijeme.
  • GitHub je online platforma koja hostira Git repozitorije, omogućuje suradnju s drugima, pregled promjena kroz web sučelje i dodatne alate (issues, pull requests, actions).

Drugim riječima, Git radi lokalno na vašem računalu, a GitHub je “mjesto u oblaku” gdje se taj kod čuva i dijeli.

2. Instalacija Gita i osnovna konfiguracija

Prvi korak je instalacija Gita na vaše računalo.

Windows: preuzmite installer sa službene stranice git-scm.com i pokrenite instalaciju s default postavkama.

macOS: najlakše preko Homebrewa:

brew install git

Linux (Ubuntu/Debian):

sudo apt update
sudo apt install git

Nakon instalacije, provjerite verziju:

git --version

Zatim postavite svoje ime i email – ovi podaci se vežu na svaki commit koji napravite:

git config --global user.name "Ime Prezime"
git config --global user.email "[email protected]"

3. Kreiranje GitHub računa i SSH ključa

Registracija na github.com je besplatna i traje par minuta. Nakon registracije, preporučuje se postaviti SSH ključ kako se ne biste morali svaki put prijavljivati korisničkim imenom i lozinkom prilikom push/pull operacija.

Generiranje SSH ključa:

ssh-keygen -t ed25519 -C "[email protected]"

Zatim kopirajte javni ključ i dodajte ga u GitHub postavke (Settings → SSH and GPG keys → New SSH key):

cat ~/.ssh/id_ed25519.pub

Provjera veze:

Ako vidite poruku potvrde s vašim korisničkim imenom, ključ je ispravno postavljen.

4. Osnovni Git workflow: init, add, commit

Najjednostavniji način da razumijete Git je kroz tri osnovne naredbe koje ćete koristiti svaki dan.

Inicijalizacija repozitorija – pokreće se unutar foldera projekta:

git init

Dodavanje datoteka u “staging area” – priprema datoteke za commit:

git add index.html
# ili sve datoteke odjednom
git add .

Commit – sprema trenutno stanje datoteka kao “snapshot” s opisnom porukom:

git commit -m "Dodana početna struktura stranice"

Svaki commit je poput spremne točke u igri – možete se uvijek vratiti na taj trenutak, vidjeti što je promijenjeno i zašto.

Tablica osnovnih naredbi

NaredbaŠto radi
git statusPrikazuje koje datoteke su promijenjene, dodane ili obrisane
git add <file>Dodaje datoteku u staging area
git commit -m "poruka"Sprema snapshot promjena s opisom
git logPrikazuje povijest commitova
git diffPrikazuje točne razlike u kodu prije commita

5. Povezivanje lokalnog repozitorija s GitHubom

Kada je lokalni repozitorij spreman, vrijeme je povezati ga s GitHub repozitorijem.

  1. Na GitHubu kliknite New repository, unesite naziv i kliknite Create.
  2. U terminalu, povežite lokalni repozitorij s remote repozitorijem:
git remote add origin [email protected]:vase-korisnicko-ime/naziv-repozitorija.git
  1. Postavite glavnu granu (branch) i pošaljite kod:
git branch -M main
git push -u origin main

Od tog trenutka, svaki budući git push automatski šalje promjene na GitHub bez dodatnih parametara.

6. Branchovi – rad bez straha od pokvarenog koda

Branch (grana) je zasebna linija razvoja koda – omogućuje vam da radite na novoj funkcionalnosti ili popravku bez utjecaja na glavni (main) kod, sve dok ne budete spremni za spajanje.

Kreiranje i prebacivanje na novi branch:

git checkout -b feature/kontakt-forma

Nakon što napravite promjene i commitate ih, branch možete poslati na GitHub:

git push -u origin feature/kontakt-forma

Kada je funkcionalnost gotova i testirana, branch se spaja u main putem pull requesta (opisano u sljedećoj sekciji) ili direktno:

git checkout main
git merge feature/kontakt-forma

Zašto su branchovi korisni: ako nešto pođe po zlu u novom branchu, glavni kod ostaje netaknut. Ovo je posebno važno kod timskog rada, gdje više ljudi istovremeno radi na različitim dijelovima istog projekta.

7. Pull requestovi – srce suradnje na GitHubu

Pull request (PR) je zahtjev da se promjene iz jednog brancha spoje u drugi (najčešće main), uz mogućnost pregleda koda, komentara i diskusije prije spajanja.

Tipičan tok:

  1. Kreirate branch i radite promjene
  2. Push-ate branch na GitHub
  3. Na GitHubu kliknete Compare & pull request
  4. Opišete što je promijenjeno i zašto
  5. Tim (ili vi sami, kod solo projekata) pregleda promjene
  6. Klikom na Merge pull request, kod se spaja u main

Pull requestovi su korisni i za solo projekte – stvaraju pisanu povijest odluka i omogućuju da se promjene pregledaju prije nego postanu dio glavnog koda.

8. .gitignore – što ne treba pratiti

Neke datoteke i folderi ne bi trebali ući u repozitorij – npr. node_modules, environment varijable s osjetljivim podacima (.env), ili build izlazi (dist, .next).

Za to postoji .gitignore datoteka u root folderu projekta:

node_modules/
.env
.next/
dist/
.DS_Store

Ako ste već commitali datoteku prije nego ste je dodali u .gitignore, Git je nastavlja pratiti – potrebno je ručno ukloniti je iz tracking-a:

git rm --cached .env

9. Rješavanje konflikata pri merge-u

Konflikt se događa kada Git ne može automatski spojiti promjene – najčešće kada su dvije osobe (ili dva brancha) promijenile istu liniju koda na različite načine.

Kada se to dogodi, Git označi sporne dijelove direktno u datoteci:

<<<<<<< HEAD
const title = "Naslov stranice";
=======
const title = "Naslov projekta";
>>>>>>> feature/novi-naslov

Potrebno je ručno odlučiti koja verzija (ili kombinacija) ostaje, ukloniti oznake (<<<<<<<, =======, >>>>>>>), te zatim:

git add .
git commit -m "Riješen konflikt u naslovu stranice"

Konflikti su normalan dio rada s Gitom, posebno u timu – ne predstavljaju grešku, već Git koji traži vašu odluku.

10. Objavljivanje vlastitog projekta – README i dobra praksa

Kada je projekt spreman za javnost (ili portfolio), nekoliko stvari ga čini profesionalnim:

  • README.md – opis projekta, kako ga pokrenuti, koje tehnologije koristi, screenshot ako je relevantno
  • Jasni commit messages – “Dodana validacija forme” je korisnije od “fix”
  • License – GitHub omogućuje dodavanje standardne licence (npr. MIT) u par klikova
  • .gitignore – prije prvog push-a, ne nakon

Primjer minimalnog README-a:

# Naziv projekta

Kratki opis što projekt radi i za koga je namijenjen.

## Pokretanje
\`\`\`bash
npm install
npm run dev
\`\`\`

## Tehnologije
- Next.js
- TypeScript
- Tailwind CSS

Dobar README je često prva stvar koju netko vidi – bilo poslodavac, klijent ili suradnik – pa vrijedi uložiti par minuta u njega.

Zaključak

GitHub na prvi pogled izgleda kompleksno, ali u suštini se svodi na nekoliko ponavljajućih koraka: napravite promjenu, commitajte je s jasnom porukom, push-ajte na GitHub, i po potrebi radite kroz branchove i pull requestove. Najbolji način da ovo postane prirodno je praksa – kreirajte mali projekt, pratite ga kroz Git od prvog dana, i ovi koraci će vam za par tjedana postati refleks.

FAQ

Moram li koristiti terminal, ili postoji vizualno sučelje? Postoje alati kao GitHub Desktop, GitKraken ili integracije unutar VS Codea koje omogućuju rad s Gitom putem grafičkog sučelja. Terminal je korisno znati jer je univerzalan i koristi se u svim okruženjima, ali za početak vizualni alati mogu olakšati učenje.

Što je razlika između forka i clone-a? Clone preuzima kopiju repozitorija na vaše računalo i povezan je s originalnim remote repozitorijem. Fork stvara vašu vlastitu kopiju repozitorija na GitHubu (pod vašim računom), nad kojom imate punu kontrolu – koristi se najčešće kod doprinosa tuđim open-source projektima.

Kako vratiti promjene ako sam pogriješio commit? Za commit koji još nije push-an, git reset --soft HEAD~1 poništava commit ali čuva promjene u datotekama. Za već push-ane commitove, sigurniji pristup je git revert <commit-hash>, koji stvara novi commit koji poništava promjene, bez brisanja povijesti.

Treba li svaki projekt imati README od prvog dana? Nije obavezno, ali je korisna praksa – README od prvog dana prisiljava vas da razmislite o svrsi projekta i kako ga drugi mogu pokrenuti, što često pomaže i u organizaciji samog koda.


Ako razvijate projekt i trebate pomoć s organizacijom koda, Git workflowom ili postavljanjem repozitorija za tim, MasteryMesh može pomoći u postavljanju procesa od prvog dana. Kontaktirajte nas ili pogledajte našu uslugu Web aplikacije.

Povezani članci