AI Asistent Učitelj Vasa: Praktična obuka za početnike (32 dana)

Dan -1/28: GitHub nalog i osnove

Vreme potrebno: 60 – 120 minuta

Gde je Učitelj Vasa danas?

Učitelj Vasa još uvek ne postoji, ali postavljamo temelje za njegovo rođenje. Instalirali smo Python i PyCharm – našu radioniku gde ćemo graditi Vasu. Danas postavljamo njegov digitalni dom na internetu – mesto gde će živeti i odakle će moći da pomogne ljudima širom sveta. Možda se pitaš zašto mu treba takav ‘digitalni dom’? Kada kod držiš samo na svom računaru, rizikuješ da ga izgubiš ili da bude dostupan samo tebi.

Cilj današnje lekcije

Danas ćeš kreirati GitHub nalog i povezati ga sa PyCharm-om, što će ti omogućiti da čuvaš i deliš kod Učitelja Vase sa svetom. Nakon ove lekcije, imaćeš svoj prvi repository spreman za početak rada na projektu sa jasnim razumevanjem zašto je verzionisanje koda važno.

Predznanja

  • Instaliran Python 3.13+ (Dan -3)
  • Instaliran PyCharm unified edition (Dan -2)
  • Osnovno snalaženje u PyCharm interfejsu
  • Email adresa za registraciju

Glavni sadržaj

Šta je Version Control i zašto nam treba?

Version Control je sistem koji čuva istoriju svih promena u tvom kodu, omogućavajući ti da se vratiš na bilo koju prethodnu verziju. To je kao vremenski stroj za tvoj kod – kad god nešto pokvariš, možeš se vratiti unazad.

📚 NIVO 1 – Osnovno objašnjenje

Zamisli da pišeš važan dokument na kompjuteru. Šta se dešava ako ti se kompjuter pokvari? Ili ako slučajno obrišeš fajl? Ili ako želiš da radiš na istom dokumentu i kod kuće i u školi? Sećaš li se situacija kada si imao fajlove poput Dokument_final.docx, pa Dokument_final_verzija2.docx, pa Dokument_STVARNO_final.docx? To brzo postaje nepregledno.

Version Control System (VCS), ili sistem za kontrolu verzija, radi upravo to – ali na mnogo pametniji način, posebno za programski kod. On ti omogućava da “slikaš” stanje svog projekta u određenim trenucima i da se kasnije vratiš na bilo koju od tih “slika” ako nešto krene po zlu. To je kao da imaš magičnu “undo” opciju za ceo projekat, ili čak vremensku mašinu za svoj kod!

Za naš projekat, version control će biti kao dnevnik razvoja Učitelja Vase. Svakog dana kada dodamo nešto novo, imaćemo sačuvanu verziju koda – možemo uvek da vidimo šta smo radili i da se vratimo unazad ako nešto krene po zlu.

🚀 NIVO 2 – Dublje razumevanje

Version Control sistemi su alati koji prate svaku promenu u kodu i omogućavaju programerima da rade zajedno bez konflikata. Git je najpopularniji distributed version control sistem koji omogućava da svaki programer ima kompletnu istoriju projekta na svom računaru. “Distribuirani” znači da svaki programer koji radi na projektu ima kompletnu istoriju projekta na svom lokalnom računaru.

Kada inicijalizuješ Git u svom projektu, on kreira skriveni folder po imenu .git unutar tvog projektnog foldera. U tom .git folderu se čuvaju sve informacije o istoriji promena, granama (branches), tagovima i sve ostalo što Git koristi za praćenje tvog projekta.

💡 PRO TIP: Ako ti commit-ovi budu jasni, bićeš heroj budućnosti – i sebi i svojim saradnicima. Piši poruke u formatu “imperativ + svrha”: “Dodaj README”, “Ispravi bug u login-u”. Kratko i jasno sada znači manje glavobolje sutra.

🔍 UVID: Skriveni .git folder je srce tvog lokalnog repozitorijuma. On nije samo običan folder; to je kompletna baza podataka. Svaki put kada napraviš commit, Git ne kopira ceo projekat iznova. Umesto toga, on kreira “snapshot” (snimak) stanja, ali pametno skladišti samo razlike (delte) u odnosu na prethodno stanje. Ovo čini Git izuzetno brzim i efikasnim, čak i na ogromnim projektima sa milionima linija koda.

🎈 ZABAVNA ČINJENICA: Linus Torvalds je osmislio Git za 10 dana 2005. godine, jer mu prethodni alat (BitKeeper) više nije bio besplatan. Git je, bukvalno, rođen iz inata!

Git vs GitHub – razlika koju morate znati

Pre nego što krenemo dalje, ključno je da razumemo razliku između Git-a i GitHub-a. Mnogi početnici ih mešaju, ali to su dve različite stvari koje rade zajedno.

📚 NIVO 1 – Osnovno objašnjenje

Ovu razliku je veoma važno razumeti od početka:

  • Git je alat – program koji se instalira na računar i prati promene u kodu lokalno
  • GitHub je servis – web sajt gde možete da postavite svoje Git projekte i delite ih sa drugima

Analogija: Git je kao što je Word program za pisanje, a GitHub je kao što je Google Drive za čuvanje i deljenje dokumenata. Git radi na tvom kompjuteru, a GitHub je online servis gde “kačiš” svoje Git projekte.

💡 PRO TIP: Zamisli Git kao svoju ličnu “crnu svesku” sa nacrtima, a GitHub kao izlog u koji izneseš svoje najbolje radove. Ne moraš da pokažeš sve – javni repoi su izlog, privatni su fioka sa ključem. Kombinuj prema potrebi!

🚀 NIVO 2 – Dublje razumevanje

Git je kreirao Linus Torvalds (isti čovek koji stoji iza Linux operativnog sistema) kao besplatan sistem za kontrolu verzija koji radi lokalno na vašem računaru. Svaki put kada napraviš “commit”, ti zapravo praviš “snapshot” (snimak) trenutnog stanja svih fajlova u tvom projektu. Git je izuzetno efikasan jer ne kopira iznova fajlove koji nisu promenjeni, već samo pamti reference na njih.

GitHub je veb platforma koja pruža hosting za Git repozitorijume na internetu, sa preko 100 miliona korisnika. Pored prostog čuvanja koda, GitHub nudi i gomilu dodatnih alata za saradnju, praćenje problema, automatizaciju. To praktično znači da na GitHub-u možeš pronaći bezbroj otvorenih projekata, učiti iz tuđeg koda, pa čak i doprineti zajedničkim projektima.

📊 DIJAGRAM: Odnos Git-a (lokalno) i GitHub-a (online)

      TVOJ RAČUNAR (Lokalno)                   INTERNET (Online)
┌───────────────────────────────┐        ┌───────────────────────────┐
│                               │        │                           │
│  ┌─────────────────────────┐  │        │  ┌───────────────────────┐  │
│  │   Projekat "ucitelj-vasa" │  │        │  │ Repozitorijum         │  │
│  │   ─────────────────────   │  │        │  │ "ucitelj-vasa"        │  │
│  │   fajl1.py   fajl2.py   │  │        │  │ ───────────────────── │  │
│  │                           │  │ push   │  │ fajl1.py   fajl2.py │  │
│  │   ┌───────────────────┐   │  │─────────>│                       │  │
│  │   │ .git folder       │   │<───────── │  │ (Istorija commit-ova) │  │
│  │   │ (Lokalna istorija)│   │  │ pull   │  │                       │  │
│  │   └───────────────────┘   │  │        │  └───────────────────────┘  │
│  └─────────────────────────┘  │        │                           │
│                               │        │                           │
│   Alat: Git                   │        │   Servis: GitHub.com      │
└───────────────────────────────┘        └───────────────────────────┘

🎈 ZABAVNA ČINJENICA: Najpopularniji public repo na GitHub-u godinama je bio freeCodeCamp – zajednica u kojoj vežbaš da kodiraš tako što pomažeš drugima da nauče. GitHub je i društvena mreža!

Kreiranje GitHub naloga

Sada kada razumemo osnovne koncepte, vreme je da napravimo GitHub nalog. Ovo je prvi praktični korak ka tome da Učitelj Vasa dobije svoj dom na internetu.

📚 NIVO 1 – Osnovno objašnjenje

Hajde da napravimo tvoj GitHub nalog. Ovo je kao pravljenje email adrese – besplatno je i traje samo nekoliko minuta.

  1. Otvori web browser i idi na https://github.com/signup

  2. GitHub će te provesti kroz proces korak po korak:

    • Email adresa: Koristi email koji redovno proveravaš, jer će ti na njega stizati važna obaveštenja
    • Lozinka: Minimum 15 karaktera ILI 8 karaktera sa brojem i malim slovom. Preporuka je da bude što duža i kompleksnija
    • Korisničko ime: Ovo će biti tvoj jedinstveni identifikator na GitHub-u
GitHub signup stranica sa označenim poljima

GitHub signup stranica sa označenim poljima

Važno o korisničkom imenu: Biraj pažljivo! Pokušaj da izabereš nešto što zvuči profesionalno ili bar neutralno. Na primer, ako izabereš “marko123”, tvoji projekti će biti na: github.com/marko123/ime-projekta. Izbegavaj neozbiljne nadimke ili kombinacije koje bi te kasnije mogle postideti.

Napomena o ad blocker-ima: Neki dodaci za blokiranje reklama (kao uBlock Origin) mogu sprečiti prikazivanje CAPTCHA verifikacije. Ako naiđeš na probleme, privremeno onemogući ad blocker za GitHub stranicu i osveži (F5).

🚀 NIVO 2 – Dublje razumevanje

Pri izboru korisničkog imena, razmisli dugoročno. GitHub profil je danas često deo CV-ja ili portfolija koji programeri pokazuju potencijalnim poslodavcima. Dobra praksa je koristiti varijantu svog imena ili nešto što te jedinstveno identifikuje kao programera. Nakon registracije, toplo preporučujem da u podešavanjima (Settings → Password and authentication) uključiš dvofaktorsku autentifikaciju (2FA) za dodatnu bezbednost.

💡 PRO TIP: Nakon registracije, dodaj profile README (repo pod imenom tvog korisničkog imena). To je digitalna posetnica – ubaci kratku biografiju i link ka Učitelju Vasi da impresioniraš buduće saradnike.

🎈 ZABAVNA ČINJENICA: GitHub je 2024. premašio 100 miliona korisnika, što je više od stanovnika Nemačke + Španije zajedno!

Verifikacija i izbor plana

Nakon što popuniš osnovne podatke, GitHub će te provesti kroz verifikaciju i izbor plana.

📚 NIVO 1 – Osnovno objašnjenje

Nakon registracije, GitHub će:

  1. CAPTCHA verifikacija: Reši mali vizuelni zadatak ili slagalicu da potvrdiš da si čovek
  2. Email verifikacija: Otvori svoj email (proveri i Spam folder), pronađi poruku od GitHub-a i unesi verifikacioni kod
  3. Personalizacija (opciono): Možeš preskočiti pitanja o tome kako planiraš da koristiš GitHub
  4. Izbor plana: Izaberi Free – besplatan je i ima sve što ti treba

Besplatan plan uključuje:

  • Neograničen broj javnih i privatnih repozitorijuma
  • Osnovne funkcionalnosti za saradnju
  • 2,000 minuta mesečno za GitHub Actions (alat za automatizaciju)

🚀 NIVO 2 – Dublje razumevanje

GitHub nudi nekoliko planova. Evo kratkog pregleda:

PlanCenaKljučne karakteristike
Free$0Neograničeni repo, osnovna saradnja
Pro~$4/mesecNapredne alatke, neograničeni saradnici
Team~$4/korisnikSve iz Pro + timske dozvole

Za ovaj kurs i za tvoje lične projekte dok učiš, Free plan je apsolutno sve što ti treba.

💡 PRO TIP: Besplatni plan je sasvim dovoljan, ali uključi Two-Factor Auth odmah. Telefonska aplikacija kao što je Authy ili Google Authenticator štiti te kad zaboraviš laptop u kafiću.

🎈 ZABAVNA ČINJENICA: I besplatni GitHub nudi do 2,000 minuta mesečno za GitHub Actions – automatske skripte koje kasnije mogu testirati ili čak objaviti Vasu dok spavaš.

Povezivanje PyCharm-a sa GitHub-om

Ovo je možda najvažniji deo današnje lekcije – povezaćemo PyCharm sa tvojim GitHub nalogom tako da možeš slati kod direktno iz PyCharm-a!

📚 NIVO 1 – Osnovno objašnjenje

Sada dolazi magija – povezaćemo PyCharm sa tvojim GitHub nalogom tako da možeš slati kod direktno iz PyCharm-a na GitHub! Možda ti se ovo čini kao dosta koraka, ali ne brini – uradićemo ih zajedno. Najbolje od svega, ovaj postupak moraš da obaviš samo jednom.

Otvori PyCharm i prati ove korake:

  1. Idi na File → Settings (ili PyCharm → Preferences na Mac-u)
  2. U levom meniju, pronađi Version Control i klikni na GitHub
  3. Klikni na dugme Add account (Dodaj nalog) ili ikonicu sa znakom plus (+)
  4. Izaberi Log In via GitHub (najlakša opcija)
PyCharm Settings sa označenom GitHub sekcijom

PyCharm Settings sa označenom GitHub sekcijom

PyCharm će automatski otvoriti tvoj web browser i preusmeriti te na GitHub stranicu gde ćeš morati da se uloguješ (ako već nisi) i da autorizuješ PyCharm. Pažljivo pročitaj šta autorizuješ i klikni na zeleno dugme “Authorize JetBrains”.

🚀 NIVO 2 – Dublje razumevanje

Povezivanje se vrši putem OAuth 2.0 protokola – industrijskog standarda za sigurnu autorizaciju. Kada izabereš “Log In via GitHub”, PyCharm ne dobija direktno tvoju GitHub lozinku. Umesto toga, GitHub izdaje poseban pristupni token (access token) koji PyCharm koristi za komunikaciju. Ovaj token obično ima ograničena prava (scopes).

Alternativni način je korišćenje Personal Access Token-a (PAT) koji možeš generisati na GitHub-u (Settings → Developer settings → Personal access tokens). PAT ti omogućava finiju kontrolu nad dozvolama.

💡 PRO TIP: Ako koristiš Personal Access Token (PAT), obavezno ga sačuvaj u PyCharm Password Safe. Tako token ostaje šifrovan, a ti ne moraš da ga kucaš ponovo. Token možeš ograničiti samo na repo dozvole za dodatni mir.

📊 DIJAGRAM: Pojednostavljeni OAuth 2.0 tok autorizacije

      PyCharm                  Pregledač (Browser)                 GitHub Server
         │                          │                                  │
    1. "Log In via GitHub" ─────────> │                                  │
         │                          │                                  │
         │                2. Otvara GitHub stranicu za prijavu           │
         │ <──────────────────────────┘                                  │
         │                          │                                  │
         │                    3. Korisnik se prijavljuje i autorizuje   │
         │                          │ ──────────────────────────────────>│
         │                          │                                  │
         │                          │             4. Izdaje token      │
         │                          │ <──────────────────────────────────│
         │                          │                                  │
         │            5. Šalje token PyCharm-u                          │
         │ <────────────────────────┘                                  │
         │                          │                                  │
    6. Veza uspostavljena!          │                                  │
   (Koristi token za API pozive)    │                                  │
         │ ───────────────────────────────────────────────────────────>│

🎈 ZABAVNA ČINJENICA: OAuth stoji i iza prijave na Spotify, Google i stotine servisa. Nauči ga sada, koristiće ti ceo život.

🌐 GOOGLE CONNECTION: Veština korišćenja Git-a i GitHub-a je fundamentalna u modernom razvoju softvera i direktno je primenjiva u Google ekosistemu. Mnogi od najvećih Google-ovih open-source projekata, kao što su TensorFlow (za mašinsko učenje), Angular (za web aplikacije) i Go (programski jezik), hostovani su upravo na GitHub-u. Učenjem ovih alata, otvaraš sebi vrata da jednog dana pregledaš kod, prijaviš grešku ili čak doprineseš kodu koji koriste milioni developera širom sveta.

Praktična implementacija

Sada kada imamo povezan PyCharm i GitHub, hajde da napravimo pravu strukturu za našeg Učitelja Vasu.

Kreiranje lokalnog projekta

  1. Na početnom ekranu PyCharm-a, klikni na New Project

  2. U prozoru za kreiranje:

    • Name: ucitelj-vasa
    • Location: izaberi gde želiš da čuvaš projekat (zapamti lokaciju!)
    • Git repository: Za sada, nemoj čekirati ovu opciju
    • Python interpreter: Proveri da je izabran Python 3.13+
  3. Klikni Create

[NIVO 1] Projekat je sada uspešno kreiran u PyCharm-u. Za sada je prazan, ali to je normalno – ovo je prazna osnova na kojoj ćemo graditi Učitelja Vasu.

Inicijalizacija Git-a i deljenje na GitHub

Čim se projekat otvori:

  1. VCS → Enable Version Control Integration

  2. Izaberi Git iz liste i klikni OK

    [NIVO 2] Sada je Git “aktiviran” za tvoj projekat lokalno. PyCharm je u pozadini izvršio komandu git init i kreirao skriveni .git direktorijum.

  3. VCS → Share Project on GitHub

  4. Dialog podešavanja:

    • Repository name: ucitelj-vasa
    • Remote: origin (standardno ime)
    • Description: “AI asistent za pomoć u učenju – projekat u razvoju”
    • Private: ostavi nečekirano (repo će biti javan)
  5. Klikni Share

Napomena: Kada klikneš Share, možda će se pojaviti dodatni dijalog “Add Files For Initial Commit”. Ovo se dešava jer PyCharm automatski kreira svoje konfiguracione fajlove (.idea folder, .gitignore, itd.) čim napraviš novi projekat. Ovi fajlovi pomažu PyCharm-u da zapamti podešavanja projekta. Jednostavno ostavi sve fajlove označene (čekirane) i klikni Add. Ovo je normalno i poželjno je da ovi fajlovi budu deo tvog Git repozitorijuma.

PyCharm će sada kreirati novi repozitorijum na tvom GitHub nalogu, povezati tvoj lokalni projekat sa tim online repozitorijumom, i napraviti prvi “commit” sa svim označenim fajlovima.

Share Project on GitHub dialog sa popunjenim poljima-step-1

Share Project on GitHub dialog sa popunjenim poljima-step-1

Share Project on GitHub dialog sa popunjenim poljima-step-2

Share Project on GitHub dialog sa popunjenim poljima-step-2

Share Project on GitHub dialog sa popunjenim poljima-step-2b

Share Project on GitHub dialog sa popunjenim poljima-step-2b

Share Project on GitHub dialog sa popunjenim poljima-3

Share Project on GitHub dialog sa popunjenim poljima-3

Share Project on GitHub dialog sa popunjenim poljima-step-4

Share Project on GitHub dialog sa popunjenim poljima-step-4

Share Project on GitHub dialog sa popunjenim poljima - napomena

Share Project on GitHub dialog sa popunjenim poljima – napomena

Share Project on GitHub dialog sa popunjenim poljima - napomena

Share Project on GitHub dialog sa popunjenim poljima – napomena

Initial commit

Initial commit

🎯 ALTERNATIVNO REŠENJE:
Ako više voliš terminal nego PyCharm menije, isti inicijalni commit možeš uraditi ručno:

# iz korena projekta
git init                 # kreira .git folder
git add .                # priprema sve fajlove
git commit -m "Dan -1: Inicijalni commit" 
git branch -M main       # osiguraj da se zove main
git remote add origin https://github.com/<korisnicko-ime>/ucitelj-vasa.git
git push -u origin main  # šalje kod na GitHub

Ovaj “ručni” pristup koristan je kad radiš na serveru bez grafičkog interfejsa.

Kreiranje README.md fajla

📚 NIVO 1 – Osnovno objašnjenje

README.md je poseban tekstualni fajl koji služi da opiše projekat. To je kao naslovna strana ili kratko uputstvo. Kada neko poseti tvoj repozitorijum na GitHub-u, sadržaj README fajla se automatski prikazuje.

  1. Desni klik na projekat → NewFile
  2. Ime: README.md (velika slova za README, mala za md)
  3. Kopiraj i nalepi sledeći sadržaj:
# Učitelj Vasa

AI asistent za pomoć u učenju - projekat sa obuke "AI Asistent Učitelj Vasa: Praktična Obuka za Početnike".

## Status projekta
Dan -1: GitHub repozitorijum kreiran. Osnovna struktura postavljena.

## Tehnologije
- Python 3.13+
- PyCharm Unified Edition
- GitHub

## Autor
[Ovde upiši svoje ime]
  1. Zameni [Ovde upiši svoje ime] svojim stvarnim imenom
  2. Sačuvaj fajl (Ctrl+S ili Cmd+S)

Napomena: Možda će se pojaviti dijalog “Add File to Git” koji te pita da li želiš da dodaš README.md u Git. Klikni Add – ovo govori Git-u da treba da prati ovaj novi fajl. Ovo pitanje se pojavljuje jer projekat već ima Git inicijalizovan, a ti si kreirao novi fajl.

Add File to Git

Add File to Git

🚀 NIVO 2 – Dublje razumevanje

Markdown (.md) je lagani markup jezik sa jednostavnom sintaksom. GitHub automatski prikazuje README.md na glavnoj stranici repozitorijuma. Sintaksa koju koristimo:

  • # kreira glavni naslov (H1)
  • ## kreira podnaslov (H2)
  • - kreira bullet listu

Prvi commit i push

Sada je vreme da zabeležimo naše promene i pošaljemo ih na GitHub!

📚 NIVO 1 – Osnovno objašnjenje

Sada moramo da “kažemo” Git-u da zabeleži ovu promenu kroz proces koji se zove commit. Zamisli commit kao da praviš fotografiju trenutnog stanja tvog projekta sa kratkim opisom šta je na njoj.

  1. Otvori Commit tab sa leve strane ili pritisni Ctrl+K (Cmd+K na Mac-u)

  2. U Commit prozoru videćeš README.md u listi promenjenih fajlova

  3. Ako je u “Unversioned Files”, PyCharm će pitati da li želiš da ga dodaš – odgovori potvrdno

  4. U polje za Commit Message ukucaj:

    Dan -1: Inicijalni commit sa README.md
    
  5. Klikni na Commit and Push

🚀 NIVO 2 – Dublje razumevanje

Veoma je važno usvojiti naviku pisanja dobrih commit poruka od samog početka. Commit poruka treba da bude jasna, koncizna i da opisuje šta je promenjeno i, ako je potrebno, zašto. Razlika između operacija:

  • git commit: Snima promene lokalno, u tvom .git folderu
  • git push: Šalje tvoje lokalne commit-ove na GitHub

PyCharm-ova opcija “Commit and Push” kombinuje ove dve komande u jedan korak.

Dan -1: GitHub repozitorijum kreiran

Dan -1: GitHub repozitorijum kreiran

SAVET ZA OPTIMIZACIJU: Pisanje dobrih commit poruka je investicija u buduću produktivnost. Kada se za 6 meseci budeš vraćao na kod, poruka “Popravljen bug” ti neće značiti ništa. Ali poruka “Fix: Rešena greška pri deljenju nulom u kalkulatoru” će ti odmah reći o čemu se radi. Dobra praksa, čak i za početnike, je pisati poruke u imperativu (“Dodaj funkciju X”, “Popravi Y”). Ovo ne ubrzava sam kod, ali drastično ubrzava ljudski proces razumevanja, debagovanja i saradnje.

🔄 VEŽBA: Kreiraj novi fajl vasa_diary.txt, napiši jednu rečenicu (“Dan -1: Vasa dobija dom!”), commit-uj i push-uj. Zatim proveri na GitHub-u da li se fajl pojavio.

Česte greške i rešenja

GREŠKA: “Authentication failed” kada pokušavam da povežem PyCharm sa GitHub-om
💡 REŠENJE:

  • Proveri da li si dozvolio PyCharm-u pristup kada te je GitHub pitao
  • Možeš ponoviti proces: Settings → GitHub → Remove account → Add account
  • Ako imaš 2FA, koristi opciju prijave preko browser-a
  • Proveri internet konekciju

GREŠKA: “Repository name ‘ucitelj-vasa’ already exists”
💡 REŠENJE:

  • Promeni ime u nešto jedinstveno (npr. ucitelj-vasa-ai)
  • Ili obriši postojeći repo na GitHub.com (Settings → Danger Zone → Delete this repository)

GREŠKA: Ne vidim VCS meni u PyCharm-u
💡 REŠENJE:

  • VCS meni se pojavljuje samo kada otvoriš projekat
  • Proveri da koristiš unified edition, ne Community
  • Proveri da li je Git instaliran: Settings → Version Control → Git

GREŠKA: “Please tell me who you are” pri commit-u
💡 REŠENJE: Git treba tvoje ime i email. U PyCharm:

  • File → Settings → Version Control → Git
  • Podesi User name i Email (najbolje iste kao na GitHub-u)

🔬 DETALJNIJE: Ova greška se ne dešava zato što je Git “radoznao”. Git je distribuirani sistem, što znači da je svaka kopija repozitorijuma samostalna. Da bi istorija imala smisla, svaki commit mora imati autora. Informacije o imenu i email-u se “upeku” u svaki commit objekat koji kreiraš. Ovo je fundamentalno za integritet sistema jer omogućava da se tačno zna ko je napravio koju promenu, kada, i na kojoj mašini.

GREŠKA: CAPTCHA se ne prikazuje pri registraciji
💡 REŠENJE:

  • Privremeno onemogući ad blocker i osveži stranicu
  • Probaj drugi browser
  • Proveri da li je JavaScript omogućen

🎈 ZABAVNA ČINJENICA: Greška “Please tell me who you are” nije uvreda Git-a – samo traži tvoje ime i email kako bi ih vezao uz svaki commit.

Proveri svoje razumevanje

  1. [NIVO 1] Objasni svojim rečima zašto je korisno koristiti sistem za kontrolu verzija?

    • Omogućava vraćanje na prethodne verzije, čuva istoriju promena, omogućava saradnju
  2. [NIVO 2] Nakon što napraviš commit, da li su promene odmah vidljive na GitHub-u? Zašto?

    • Ne, commit čuva promene samo lokalno. Potreban je push da bi bile vidljive online
  3. [ZA OBA NIVOA] Gde možeš videti svoj ucitelj-vasa projekat na internetu?

    • Na adresi: github.com/[tvoje-korisnicko-ime]/ucitelj-vasa

🤔 MINI-KVIZ:

  1. Kako se zove komanda koja prenosi commit-ove sa tvog računara na GitHub?
  2. Šta znači da je Git “distribuirani” sistem?
  3. Koja je razlika između commit i snapshot u Git-u?

Dodatni primeri i zabavne vežbe

  1. Napravi granu (branch) pod nazivom feature-pozdrav i u README.md dodaj liniju “Vasa kaže: Zdravo, svetu!”.
  2. Spoji (merge) granu nazad na main koristeći Pull Request na GitHub-u.
  3. Obriši granu nakon spajanja i proveri istoriju commit-a.

🎈 ZABAVNA ČINJENICA: Prvi “pull request” u istoriji GitHub-a bio je samo ispravka slovne greške u README-u!

Git commit za danas

git add .
git commit -m "Dan -1: Inicijalni commit sa README.md"
git push

[NIVO 1] Ne moraš ručno kucati ove naredbe – PyCharm je to već obavio kroz svoj interfejs. Ovde su prikazane samo da vidiš šta se tačno desilo u pozadini.

Sutra Učitelj Vasa uči

Sutra je Dan 0 – poslednji dan priprema! Napravićemo kompletnu strukturu projekta sa svim potrebnim folderima i naučićemo osnove Python paketa. Učitelj Vasa će dobiti svoj dom sa sobama za različite delove koda. Pripremićemo folder strukturu koja će omogućiti lako održavanje i proširivanje projekta.

📚 REČNIK DANAŠNJE LEKCIJE:

  • Repository (repo): Folder na GitHub-u koji sadrži tvoj projekat i svu njegovu istoriju, kao digitalna fascikla sa supermoćima
  • Version Control: Sistem koji pamti sve izmene u kodu i omogućava vraćanje na prethodne verzije, kao napredna “undo” funkcija
  • Commit: Snimak stanja koda u određenom trenutku sa opisom šta je promenjeno, kao fotografija tvog projekta
  • Push: Slanje tvojih lokalnih commit-ova na GitHub, kao upload tvog rada na internet
  • Git: Program koji upravlja verzijama koda na tvom kompjuteru lokalno
  • GitHub: Website koji hostuje Git repository-je i omogućava saradnju sa drugim programerima
  • OAuth: Siguran način autentifikacije gde ne deliš lozinku direktno već GitHub izdaje poseban token
  • PAT (Personal Access Token): Jednokratni token koji služi kao “ključ” za pristup GitHub-u bez lozinke
  • Two-Factor Auth (2FA): Dodatni sloj zaštite koji zahteva drugi uređaj ili aplikaciju za prijavu
  • Snapshot: Git-ova “fotografija” trenutnog stanja projekta, kreirana komandom commit
  • Pull Request (PR): Predlog da se promene iz jedne grane spoje u drugu, uz pregled koda
  • GitHub Actions: Automatizovani tokovi rada koji se pokreću na događaje unutar repo-a (commit, PR…)