18 KiB
Uvod u GitHub
Ova lekcija pokriva osnove GitHuba, platforme za hostanje i upravljanje promjenama u vašem kodu.
Sketchnote od Tomomi Imura
Kviz prije predavanja
Uvod
U ovoj lekciji obradit ćemo:
- praćenje rada na vašem računalu
- rad na projektima s drugima
- kako doprinositi softveru otvorenog koda
Preduvjeti
Prije nego što počnete, provjerite je li Git instaliran. U terminal upišite:
git --version
Ako Git nije instaliran, preuzmite Git. Zatim postavite svoj lokalni Git profil u terminalu:
git config --global user.name "vaše-ime"
git config --global user.email "vaš-email"
Da biste provjerili je li Git već konfiguriran, možete upisati:
git config --list
Također će vam trebati GitHub račun, uređivač koda (poput Visual Studio Code-a) i otvoren terminal (ili: naredbeni redak).
Idite na github.com i kreirajte račun ako već niste, ili se prijavite i ispunite svoj profil.
✅ GitHub nije jedini repozitorij koda na svijetu; postoje i drugi, ali GitHub je najpoznatiji.
Priprema
Trebat će vam mapa s projektom koda na vašem lokalnom računalu (laptopu ili PC-u) i javni repozitorij na GitHubu, koji će poslužiti kao primjer kako doprinositi projektima drugih.
Upravljanje kodom
Recimo da imate mapu lokalno s nekim projektom koda i želite početi pratiti svoj napredak koristeći git - sustav za kontrolu verzija. Neki ljudi uspoređuju korištenje gita s pisanjem ljubavnog pisma svom budućem ja. Čitajući svoje poruke o commitima danima, tjednima ili mjesecima kasnije, moći ćete se prisjetiti zašto ste donijeli određenu odluku ili "vratiti" promjenu - pod uvjetom da pišete dobre "poruke o commitima".
Zadatak: Napravite repozitorij i commitajte kod
Pogledajte video
-
Kreirajte repozitorij na GitHubu. Na GitHub.com, u kartici repozitorija ili iz navigacijske trake u gornjem desnom kutu, pronađite gumb new repo.
- Dajte svom repozitoriju (mapi) ime.
- Odaberite create repository.
-
Idite do svoje radne mape. U terminalu se prebacite u mapu (poznatu i kao direktorij) koju želite početi pratiti. Upišite:
cd [name of your folder]
-
Inicijalizirajte git repozitorij. U svom projektu upišite:
git init
-
Provjerite status. Da biste provjerili status svog repozitorija, upišite:
git status
izlaz može izgledati ovako:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file.txt modified: file2.txt
Obično naredba
git status
govori stvari poput toga koji su datoteke spremne za spremanje u repozitorij ili imaju promjene koje biste možda željeli sačuvati. -
Dodajte sve datoteke za praćenje
Ovo se također naziva postavljanje datoteka/dodavanje datoteka u staging područje.git add .
Argument
git add
plus.
označava da su sve vaše datoteke i promjene spremne za praćenje. -
Dodajte odabrane datoteke za praćenje
git add [file or folder name]
Ovo nam pomaže dodati samo odabrane datoteke u staging područje kada ne želimo commitati sve datoteke odjednom.
-
Uklonite sve datoteke iz staging područja
git reset
Ova naredba pomaže nam ukloniti sve datoteke iz staging područja odjednom.
-
Uklonite određenu datoteku iz staging područja
git reset [file or folder name]
Ova naredba pomaže nam ukloniti samo određenu datoteku iz staging područja koju ne želimo uključiti u sljedeći commit.
-
Sačuvajte svoj rad. U ovom trenutku ste dodali datoteke u tzv. staging područje. Mjesto gdje Git prati vaše datoteke. Da biste promjenu učinili trajnom, trebate commitati datoteke. To radite stvaranjem commita pomoću naredbe
git commit
. Commit predstavlja točku spremanja u povijesti vašeg repozitorija. Upišite sljedeće da biste stvorili commit:git commit -m "first commit"
Ovo commitira sve vaše datoteke, dodajući poruku "first commit". Za buduće poruke o commitima želite biti detaljniji u opisu kako biste prenijeli kakvu ste promjenu napravili.
-
Povežite svoj lokalni Git repozitorij s GitHubom. Git repozitorij je koristan na vašem računalu, ali u nekom trenutku želite imati sigurnosnu kopiju svojih datoteka negdje i također pozvati druge ljude da rade s vama na vašem repozitoriju. Jedno od sjajnih mjesta za to je GitHub. Sjetite se da smo već kreirali repozitorij na GitHubu, tako da jedino što trebamo učiniti je povezati naš lokalni Git repozitorij s GitHubom. Naredba
git remote add
to će učiniti. Upišite sljedeću naredbu:Napomena: prije nego što upišete naredbu, idite na stranicu svog GitHub repozitorija kako biste pronašli URL repozitorija. Koristit ćete ga u naredbi ispod. Zamijenite
https://github.com/username/repository_name.git
s vašim GitHub URL-om.git remote add origin https://github.com/username/repository_name.git
Ovo stvara remote, ili vezu, nazvanu "origin" koja pokazuje na GitHub repozitorij koji ste ranije kreirali.
-
Pošaljite lokalne datoteke na GitHub. Do sada ste stvorili vezu između lokalnog repozitorija i GitHub repozitorija. Pošaljimo ove datoteke na GitHub pomoću sljedeće naredbe
git push
, ovako:Napomena: naziv vaše grane može se razlikovati od
main
.git push -u origin main
Ovo šalje vaše commitove u vašu "main" granu na GitHub.
-
Dodajte još promjena. Ako želite nastaviti s promjenama i slati ih na GitHub, samo ćete trebati koristiti sljedeće tri naredbe:
git add . git commit -m "type your commit message here" git push
Savjet: Možda biste također željeli usvojiti
.gitignore
datoteku kako biste spriječili da se datoteke koje ne želite pratiti pojavljuju na GitHubu - poput bilješki koje pohranjujete u istoj mapi, ali nemaju mjesto u javnom repozitoriju. Možete pronaći predloške za.gitignore
datoteke na .gitignore templates.
Poruke o commitima
Sjajna Git commit poruka u naslovu završava sljedeću rečenicu:
Ako se primijeni, ovaj commit će <vaša poruka ovdje>
Za naslov koristite imperativ, sadašnje vrijeme: "promijeni" umjesto "promijenio" ili "mijenja".
Kao i u naslovu, u tijelu (opcionalno) također koristite imperativ, sadašnje vrijeme. Tijelo bi trebalo uključivati motivaciju za promjenu i usporedbu s prethodnim ponašanjem. Objašnjavate zašto
, a ne kako
.
✅ Odvojite nekoliko minuta da pregledate GitHub. Možete li pronaći zaista sjajnu poruku o commitu? Možete li pronaći vrlo minimalnu? Koje informacije smatrate najvažnijima i najkorisnijima za prenijeti u poruci o commitu?
Zadatak: Suradnja
Glavni razlog za postavljanje stvari na GitHub bio je omogućiti suradnju s drugim programerima.
Rad na projektima s drugima
Pogledajte video
U svom repozitoriju idite na Insights > Community
kako biste vidjeli kako se vaš projekt uspoređuje s preporučenim standardima zajednice.
Evo nekoliko stvari koje mogu poboljšati vaš GitHub repozitorij:
- Opis. Jeste li dodali opis za svoj projekt?
- README. Jeste li dodali README? GitHub pruža smjernice za pisanje README.
- Smjernice za doprinos. Ima li vaš projekt smjernice za doprinos?
- Kodeks ponašanja. Ima li vaš projekt Kodeks ponašanja?
- Licenca. Možda najvažnije, ima li vaš projekt licencu?
Svi ovi resursi koristit će za onboardanje novih članova tima. To su obično stvari koje novi suradnici pregledavaju prije nego što uopće pogledaju vaš kod, kako bi saznali je li vaš projekt pravo mjesto za njihovo ulaganje vremena.
✅ README datoteke, iako zahtijevaju vrijeme za pripremu, često su zanemarene od strane zauzetih održavatelja. Možete li pronaći primjer posebno opisnog README-a? Napomena: postoje neki alati za pomoć pri izradi dobrih README-a koje biste mogli isprobati.
Zadatak: Spojite kod
Dokumentacija za doprinos pomaže ljudima da doprinesu projektu. Objašnjava koje vrste doprinosa tražite i kako proces funkcionira. Suradnici će morati proći kroz niz koraka kako bi mogli doprinositi vašem repozitoriju na GitHubu:
- Forkanje vašeg repozitorija. Vjerojatno ćete htjeti da ljudi forkaju vaš projekt. Forkanje znači stvaranje replike vašeg repozitorija na njihovom GitHub profilu.
- Kloniranje. Nakon toga će klonirati projekt na svoje lokalno računalo.
- Kreiranje grane. Tražit ćete od njih da kreiraju granu za svoj rad.
- Fokusiranje promjena na jedno područje. Zamolite suradnike da se koncentriraju na jedan aspekt doprinosa odjednom - na taj način su veće šanse da možete spojiti njihov rad. Zamislite da napišu ispravak greške, dodaju novu značajku i ažuriraju nekoliko testova - što ako želite ili možete implementirati samo 2 od 3, ili 1 od 3 promjene?
✅ Zamislite situaciju u kojoj su grane posebno ključne za pisanje i isporuku dobrog koda. Koje slučajeve upotrebe možete zamisliti?
Napomena: Budite promjena koju želite vidjeti u svijetu i kreirajte grane za svoj rad također. Svi commitovi koje napravite bit će napravljeni na grani na kojoj ste trenutno "checked out". Koristite
git status
da vidite na kojoj ste grani.
Prođimo kroz tijek rada suradnika. Pretpostavimo da je suradnik već forkao i klonirao repozitorij, tako da ima Git repozitorij spreman za rad na svom lokalnom računalu:
-
Kreirajte granu. Koristite naredbu
git branch
za kreiranje grane koja će sadržavati promjene koje namjeravaju doprinijeti:git branch [branch-name]
-
Prebacite se na radnu granu. Prebacite se na određenu granu i ažurirajte radni direktorij pomoću
git switch
:git switch [branch-name]
-
Radite na promjenama. U ovom trenutku želite dodati svoje promjene. Ne zaboravite obavijestiti Git o tome pomoću sljedećih naredbi:
git add . git commit -m "my changes"
Osigurajte da svom commitu date dobro ime, za vaše dobro kao i za dobro održavatelja repozitorija kojem pomažete.
-
Spojite svoj rad s
main
granom. U nekom trenutku završavate s radom i želite spojiti svoj rad s onim namain
grani.Main
grana se možda promijenila u međuvremenu, pa je osigurajte da je prvo ažurirate na najnoviju verziju pomoću sljedećih naredbi:git switch main git pull
U ovom trenutku želite osigurati da se svi sukobi, situacije u kojima Git ne može lako spojiti promjene, dogode u vašoj radnoj grani. Stoga pokrenite sljedeće naredbe:
git switch [branch_name] git merge main
Ovo će unijeti sve promjene iz
main
grane u vašu granu i nadamo se da možete samo nastaviti. Ako ne, VS Code će vam pokazati gdje je Git zbunjen i samo izmijenite zahvaćene datoteke kako biste odredili koji je sadržaj najtočniji. -
Pošaljite svoj rad na GitHub. Slanje vašeg rada na GitHub znači dvije stvari. Guranje vaše grane na vaš repozitorij i zatim otvaranje PR-a, Pull Requesta.
git push --set-upstream origin [branch-name]
Gornja naredba kreira granu na vašem forkiranom repozitoriju.
-
Otvorite PR. Zatim želite otvoriti PR. To radite tako da odete na forkirani repozitorij na GitHubu. Vidjet ćete naznaku na GitHubu gdje vas pita želite li kreirati novi PR, kliknite na to i bit ćete preusmjereni na sučelje gdje možete promijeniti naslov poruke o commitu, dati prikladniji opis. Sada održavatelj repozitorija koji ste forkali vidi ovaj PR i držimo palčeve da će ga cijeniti i spojiti vaš PR. Sada ste suradnik, bravo :)
-
Očistite. Smatra se dobrom praksom očistiti nakon što uspješno spojite PR. Želite očistiti i svoju lokalnu granu i granu koju ste gurali na GitHub. Prvo je izbrišite lokalno pomoću sljedeće naredbe:
git branch -d [branch-name]
Idite na GitHub stranicu za forkani repozitorij i uklonite udaljenu granu koju ste upravo gurnuli na njega.
Pull request
može zvučati kao čudan izraz jer zapravo želite gurnuti svoje promjene u projekt. No, održavatelj (vlasnik projekta) ili glavni tim mora razmotriti vaše promjene prije nego što ih spoji s "main" granom projekta, pa zapravo tražite odluku o promjeni od održavatelja.
Pull request je mjesto gdje možete usporediti i raspraviti razlike uvedene na grani uz recenzije, komentare, integrirane testove i više. Dobar pull request slijedi otprilike ista pravila kao i poruka commit-a. Možete dodati referencu na problem u trackeru problema, na primjer kada vaš rad rješava neki problem. To se radi pomoću #
praćenog brojem vašeg problema. Na primjer #97
.
🤞Držimo palčeve da svi provjeri prođu i da vlasnik(i) projekta spoje vaše promjene u projekt🤞
Ažurirajte svoju trenutnu lokalnu radnu granu sa svim novim commit-ovima iz odgovarajuće udaljene grane na GitHubu:
git pull
Kako doprinijeti otvorenom kodu
Prvo, pronađimo repozitorij (ili repo) na GitHubu koji vas zanima i kojem želite doprinijeti promjenom. Željet ćete kopirati njegov sadržaj na svoje računalo.
✅ Dobar način za pronalaženje repozitorija prilagođenih početnicima je pretraživanje prema oznaci 'good-first-issue'.
Postoji nekoliko načina za kopiranje koda. Jedan od načina je "kloniranje" sadržaja repozitorija, koristeći HTTPS, SSH ili GitHub CLI (Command Line Interface).
Otvorite svoj terminal i klonirajte repozitorij ovako:
git clone https://github.com/ProjectURL
Za rad na projektu, prebacite se u odgovarajući folder:
cd ProjectURL
Također možete otvoriti cijeli projekt koristeći Codespaces, GitHub-ov ugrađeni uređivač koda / razvojno okruženje u oblaku, ili GitHub Desktop.
Na kraju, možete preuzeti kod u zipanoj mapi.
Nekoliko zanimljivih stvari o GitHubu
Možete označiti zvjezdicom, pratiti i/ili "forkati" bilo koji javni repozitorij na GitHubu. Svoje označene repozitorije možete pronaći u padajućem izborniku u gornjem desnom kutu. To je poput označavanja stranica, ali za kod.
Projekti imaju tracker problema, uglavnom na GitHubu u kartici "Issues" osim ako nije drugačije naznačeno, gdje ljudi raspravljaju o problemima vezanim za projekt. Kartica Pull Requests je mjesto gdje ljudi raspravljaju i pregledavaju promjene koje su u tijeku.
Projekti također mogu imati rasprave u forumima, mailing listama ili chat kanalima poput Slacka, Discorda ili IRC-a.
✅ Pogledajte svoj novi GitHub repo i isprobajte nekoliko stvari, poput uređivanja postavki, dodavanja informacija u repo i stvaranja projekta (poput Kanban ploče). Puno toga možete učiniti!
🚀 Izazov
Udružite se s prijateljem kako biste radili na međusobnom kodu. Zajedno stvorite projekt, forkajte kod, kreirajte grane i spojite promjene.
Kviz nakon predavanja
Pregled i samostalno učenje
Pročitajte više o doprinosu otvorenom softveru.
Vježbajte, vježbajte, vježbajte. GitHub ima odlične putove za učenje dostupne putem skills.github.com:
Također ćete pronaći naprednije tečajeve.
Zadatak
Dovršite tečaj Prvi tjedan na GitHubu
Odricanje od odgovornosti:
Ovaj dokument je preveden pomoću AI usluge za prevođenje Co-op Translator. Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za ključne informacije preporučuje se profesionalni prijevod od strane ljudskog prevoditelja. Ne preuzimamo odgovornost za nesporazume ili pogrešne interpretacije koje mogu proizaći iz korištenja ovog prijevoda.