Šta je GitHub? Verzioniranje za one koji nisu programeri
GitHub je web stranica koja čuva kod softverskih projekata zajedno s njihovom potpunom historijom, pa možete vidjeti svaku izmjenu, poništiti greške i raditi na istom projektu s drugim ljudima. Izgrađen je na Gitu, besplatnom softveru koji bilježi snimke datoteka projekta kroz vrijeme. Git je alat koji čuva historiju; GitHub je online dom u kojem se ta historija dijeli, čuva kao rezerva i o njoj se razgovara.
Ako gradite uz pomoć AI-ja, GitHub je uglavnom o dvije stvari: posjedovanju kopije vašeg koda izvan alata u kojem ste ga napravili i predaji programeru u formatu u kojem već radi.
Zašto je važan kada gradite uz AI
AI graditelj aplikacija brzo piše i mijenja mnogo koda, a nisu sve promjene poboljšanja. Verzioniranje je način da to sigurno kontrolišete.
- Poništavanje bez brige. Svaka sačuvana promjena je snimak. Ako AI nešto pokvari, vraćate se na posljednju dobru verziju.
- Vlasništvo. Kod u vašem GitHub nalogu ostaje vaš ako promijenite alat, prestanete plaćati jedan od njih ili želite drugo mišljenje.
- Rad s programerima. Skoro svaki programer svakodnevno koristi Git. Repozitorij im omogućava da pregledaju ono što je AI napisao, isprave to i vrate izmjene nazad.
- Deploy na drugom mjestu. Mnoge platforme za hosting mogu da objave aplikaciju direktno iz GitHub repozitorija.
Svakodnevna analogija: praćenje izmjena i zajednički disk
Zamislite dokument s uključenim praćenjem izmjena, sačuvan na zajedničkom disku.
- Git je praćenje izmjena: svaka izmjena se bilježi, uz to ko ju je napravio, kada i zašto, i možete se vratiti na bilo koju verziju.
- GitHub je zajednički disk: dokument živi na internetu, drugi mogu dobiti kopiju, a postoji mjesto za komentare i odobravanje.
- Grana (branch) je kao sačuvana kopija pod nazivom „nacrt — novi dio o cijenama” da možete eksperimentisati bez diranja verzije na koju se svi oslanjaju. Ako eksperiment uspije, spajate ga nazad.
Razlika u odnosu na dokument je u obimu. Aplikacija ima stotine datoteka, a Git ih prati sve zajedno, pa je snimak stanje cijelog projekta odjednom.
Git i GitHub pojmovi s kojima ćete se susresti
| Pojam | Jednostavno značenje |
|---|---|
| Repozitorij (repo) | Folder projekta s cijelom historijom |
| Commit | Sačuvani snimak izmjena, s kratkom porukom koja ih opisuje |
| Grana (branch) | Zasebna linija rada, da eksperimenti ne ometaju glavnu verziju |
| main | Uobičajeni naziv za glavnu granu — verzija koja ide u produkciju |
| Merge (spajanje) | Prenošenje izmjena jedne grane u drugu |
| Merge konflikt | Dvije izmjene diraju iste linije; neko mora odlučiti koju zadržati |
| Clone (klon) | Preuzimanje potpune kopije repozitorija, uključujući historiju |
| Push / pull | Slanje vaših commitova na GitHub / preuzimanje tuđih commitova |
| Pull request (PR) | GitHub stranica koja predlaže spajanje grane, gdje ljudi pregledaju i diskutuju izmjene |
| Fork | Vaša vlastita kopija tuđeg repozitorija na GitHubu |
| Issue | Zadatak ili prijava greške vezana za repozitorij |
.gitignore | Lista datoteka koje Git nikada ne smije bilježiti, na primjer .env tajne i preuzete zavisnosti |
| GitHub Actions | Automatizacija koja se izvršava na GitHubu, na primjer testovi za svaki pull request |
Dvije stvari vrijedi naglasiti. Prvo, Git historija je po dizajnu trajna: ako se lozinka commituje i pošalje, brisanje u kasnijem commitu je ne uklanja iz historije. Drugo, commit je vrijedan koliko i njegova poruka. „Ispravljeno dvostruko brojanje rezervacija kada dvije osobe rezervišu istovremeno” korisno je kasnije; „ažuriranje” nije.
Primjer: predaja aplikacije izrađene uz AI freelanceru
Napravili ste portal za klijente uz pomoć AI graditelja aplikacija. Radi, ali želite da freelance programer doda zahtjevnu integraciju sa vašim računovodstvenim softverom.
- Povežite projekat s novim privatnim GitHub repozitorijem i pošaljite kod. Repozitorij sada sadrži kod i njegovu historiju.
- Provjerite šta je u njemu. Otvorite repozitorij na GitHubu. Ne bi smjelo biti
.envdatoteke ni API ključeva u kodu. Tajne ostaju u postavkama vaše platforme i s freelancerom se dijele posebno, ako uopšte. Pogledajte varijable okruženja i tajne. - Pozovite freelancera kao saradnika samo na taj repozitorij.
- Radi na grani pod nazivom poput
accounting-sync, commituje kako napreduje i otvara pull request kada završi. - Vi pregledate pull request. Čak i bez čitanja koda, možete pročitati opis, provjeriti koje su datoteke promijenjene i postaviti pitanja u komentarima.
- Spojite kada ste zadovoljni, pa povucite (pull) izmjene nazad u svoj graditelj kako biste vi i AI nastavili s novom verzijom.
Pritom možete tačno vidjeti šta je promijenjeno i poništiti to po potrebi. To je cijela vrijednost verzioniranja u jednom toku rada. Ako još razmišljate da li uopšte angažovati programera, pogledajte angažovanje programera ili izradu uz AI.
Česte greške i zablude
- „GitHub i Git su ista stvar.” Git radi i bez GitHuba; alternative poput GitLaba i Bitbucketa također hostuju Git repozitorije.
- „GitHub će pokrenuti moju aplikaciju.” GitHub čuva kod. Pokretanje aplikacije za javnost je web hosting, zasebna usluga (iako neke platforme mogu da objave aplikaciju direktno s GitHuba).
- Commitovanje tajni. Najštetnija i najčešća greška. Koristite
.gitignoreza.envdatoteke i zamijenite svaki ključ koji je ikada bio pushovan. - Samo jedna grana i bez poruka. Dovoljno za solo eksperimente, ali dajte commitovima jasne poruke i koristite grane za sve rizično.
- Uređivanje na dva mjesta istovremeno. Ako mijenjate kod na GitHubu i u AI graditelju bez povlačenja izmjena između, stvarate konflikte. Odaberite jedno mjesto za uređivanje u datom trenutku i sinhronizujte prije prebacivanja.
- Mišljenje da je privatni repozitorij rezerva svega. Čuva kod, a ne sadržaj vaše baze podataka ni otpremljene datoteke. Ti podaci trebaju vlastite rezervne kopije.
Šta tražiti od AI graditelja
- „Dodaj
.gitignorekoji isključuje.env, foldere zavisnosti i izlaz builda.” - „Napiši README koji objašnjava kako se instalira, koje varijable okruženja su potrebne (samo nazivi) i kako se aplikacija pokreće.”
- „Dodaj
.env.examplesa svim nazivima varijabli i bez stvarnih vrijednosti.” - „Koristi jasne, opisne poruke commitova za svaku promjenu.”
Tih četiri zahtjeva prave repozitorij koji programer može preuzeti za nekoliko minuta. Za premještanje aplikacije na vaše servere pogledajte kako izvesti i samostalno hostovati aplikaciju izrađenu uz AI, a za učvršćivanje prije stvarnih korisnika kako prenijeti AI prototip u produkciju.
GitHub i Mythex
Mythex čuva historiju umjesto vas na svakom planu: nakon svakog uspješnog koraka agenta pravi checkpoint, koji je Git snimak na koji se možete vratiti. Na Pro planu možete povezati GitHub i gurati ili povlačiti projekat s vašim repozitorijem, ili preuzeti cijeli projekat kao arhivu; tajne i instalirane zavisnosti su isključene iz izvoza. GitHub ovdje služi za sinhronizaciju koda, a ne za prijavu u Mythex. Pogledajte GitHub, izvoz i uvoz u dokumentaciji i stranicu s cijenama za to što svaki plan uključuje.
Pitanja
Koja je razlika između Gita i GitHuba?
Git je besplatan softver koji bilježi historiju datoteka projekta na bilo kojem računaru. GitHub je web stranica, u vlasništvu kompanije Microsoft, koja hostuje Git repozitorije na internetu i dodaje alate za saradnju, kao što su pull requestovi, issue-i i automatizacija.
Treba li mi GitHub da napravim aplikaciju uz pomoć AI-ja?
Ne. Mnogi AI graditelji aplikacija čuvaju historiju umjesto vas unutar samog proizvoda. GitHub postaje koristan kada želite vlastitu kopiju koda, kada želite raditi s programerom ili kada planirate da aplikaciju hostujete negdje drugdje.
Je li GitHub besplatan?
GitHub ima besplatan plan koji uključuje javne i privatne repozitorije, što je dovoljno za većinu pojedinaca i malih timova. Plaćeni planovi donose upravljanje timom i dodatne funkcije; aktuelne detalje provjerite na GitHubovoj stranici s cijenama.
Je li moj kod javan na GitHubu?
Samo ako repozitorij učinite javnim. Privatne repozitorije vide samo vi i ljudi koje pozovete. Čak ni u privatnom repozitoriju nikada ne commitujte lozinke ni API ključeve.