GitHub je spletna platforma, ki ponuja gostovanje (hosting) za Git repozitorije in dodaja orodja za sodelovanje, ki olajšajo ekipno delo. Čeprav sta Git in GitHub pogosto zamenjana, gre za dve različni stvari - Git je orodje za sledenje spremembam, GitHub pa je spletna storitev, ki Git repozitorije postavi v oblak.
Git vs. GitHub - kaj je razlika?
To je eden najpogostejših zmot med začetniki. Poenostavljeno: Git je mehanizem za sledenje spremembam, GitHub pa je hiša, v kateri te spremembe shranjujemo in delimo z drugimi.
| Lastnost | Git | GitHub |
|---|---|---|
| Tip | Lokalno orodje | Spletna platforma |
| Namestitev | Dostop preko brskalnika | |
| Funkcija | Sledenje spremembam | Gostovanje + sodelovanje |
| Alternative | Mercurial, SVN | GitLab, Bitbucket |
| Cena | Brezplačen (odprta koda) | Brezplačni + plačljivi paketi |
Ključni pojmi GitHub-a
Preden se poglobimo v delovanje, moramo razumeti osnovne pojme, ki jih GitHub uporablja:
- Repozitorij (Repository): Mapa, ki vsebuje vse datoteke projekta in zgodovino sprememb
- Fork: Kopija tujega repozitorija na tvoj račun, kjer lahko neodvisno spreminjaš kodo
- Pull Request (PR): Predlog za vključitev tvojih sprememb v tuji repozitorij
- Clone: Prevez repozitorija s GitHub-a na lokalni računalnik
- Issue: Sledenje napakam, predlogom in nalogam znotraj projekta
- README: Glavna dokumentacijska datoteka, ki se prikaže na strani repozitorija
Potek sodelovanja (Workflow)
Tipičen potek dela na GitHub-u izgleda takole:
# 1. Kloniraj repozitorij na lokalni računalnik git clone https://github.com/uporabnik/projekt.git # 2. Ustvari novo granico za svojo funkcijo git checkout -b nova-funkcija # 3. Naredi spremembe in jih zaveži git add . git commit -m "Dodana nova funkcija" # 4. Pošlji granico na GitHub git push origin nova-funkcija # 5. Na GitHub-u odpri Pull Request # 6. Lastnik repozitorija pregleda kodo # 7. Po odobritvi se spremembe zlijejo (merge) v glavno kodo
Fork in Pull Request v praksi
Ko želiš prispevati k projektu, ki ni tvoj (npr. odprtokodni projekt), uporabiš postopek Fork & Pull Request:
- Fork: Na GitHub-u klikneš "Fork" - to ustvari kopijo repozitorija pod tvojim računom
- Clone: Kloniraš svoj fork na lokalni računalnik
- Branch: Ustvariš novo granico za svoje spremembe
- Commit & Push: Zavežeš spremembe in jih pošlješ na svoj fork
- Pull Request: Na GitHub-u odpreš PR proti originalnemu repozitoriju
- Review: Lastnik pregleda tvojo kodo in jo sprejme ali zavrne
Alternativne platforme
GitHub ni edina možnost. Tukaj je pregled najbolj znanih alternativ:
| Platforma | Lastnik | Posebnost |
|---|---|---|
| GitLab | GitLab Inc. | Vgrajen CI/CD, lahko samostojno nameščen (self-hosted) |
| Bitbucket | Atlassian | Tesna integracija z Jira in Confluence |
| Codeberg | Non-profit | Odprtokodni, podatki v EU (Nemčija) |
Za začetnike je GitHub odlična izbira zaradi velike skupnosti, obsežne dokumentacije in brezplačnih funkcij. Kasneje lahko preideš na GitLab, če potrebuješ self-hosted rešitev ali napreden CI/CD.
Glede na tvoje interese - GitHub Pages je odlična funkcija, ki omogoča brezplačno gostovanje statičnih spletnih strani neposredno iz repozitorija. To je idealno za portfolije, dokumentacijo ali manjše projekte.