Je li vas ikad zbunilo kako funkcioniraju Git i GitHub? Ne uzrujavajte se - niste sami. Git i GitHub ponekad mogu biti nezgodni, ali do kraja ovog posta dobro ćete shvatiti to dvoje.
U početku je možda primamljivo vjerovati da su Git i GitHub ista stvar. Ali u stvarnosti nisu. Uistinu, Git je moguće koristiti bez GitHub-a! I na kraju, njih dvoje postoje u različite svrhe.
Ovaj će post započeti dobrim pregledom svrha Gita i GitHuba. Poslije ćemo naučiti o glavnim razlikama između ove dvije vitalne tehnologije.
Bez daljnjeg odlaganja, krenimo s Gitom.
Što je Git?
Git je Distribuirani sustav za kontrolu verzija (DVCS) koji se koristi za spremanje različitih verzija datoteke (ili skupa datoteka), tako da je bilo koju verziju moguće dohvatiti po volji.
Git također olakšava snimanje i usporedbu različitih verzija datoteka. To znači da se pojedinosti o tome što se promijenilo, tko je što promijenio ili tko je pokrenuo problem mogu pregledati bilo kada.
Ali ako je Git distribuirani sustav kontrole verzija, što točno znače ti pojmovi?
Što znači "distribuirano"?
Izraz "distribuirano" znači da kad god naredite Gitu da dijeli direktorij projekta, Git ne dijeli samo najnoviju verziju datoteke. Umjesto toga distribuira svaku verziju koju je snimila za taj projekt.
Ovaj "distribuirani" sustav u oštroj je suprotnosti s drugim sustavima za kontrolu verzija. Oni dijele samo onu pojedinačnu verziju koju je korisnik izričito odjavio iz središnje / lokalne baze podataka.
U redu, tako da "distribuirano" znači distribuirati sve - a ne samo nekoliko odabranih - verzija datoteka projekta koje je Git zabilježio. Ali što je zapravo sustav kontrole verzija?
Što je sustav za kontrolu verzija?
Sustav za kontrolu verzija (VCS) odnosi se na metodu koja se koristi za spremanje verzija datoteke za buduću referencu.
Intuitivno, mnogi ljudi već verzija kontrola njihovi projekti preimenovanjem različite verzije iste datoteke na različite načine kao što su blogScript.js
, blogScript_v2.js
, blogScript_v3.js
, blogScript_final.js
, blogScript_definite_final.js
, i tako dalje. Ali ovaj je pristup podložan pogreškama i neučinkovit za timske projekte.
Također, praćenje onoga što se promijenilo, tko je to promijenio i zašto je promijenjeno dosadan je pothvat s ovim tradicionalnim pristupom. Ovo osvjetljava važnost pouzdanog i suradničkog sustava za upravljanje verzijama poput Gita.
Međutim, da biste najbolje iskoristili Git, neophodno je razumjeti kako Git obrađuje vaše datoteke.
Datoteke navodi u Gitu
U Gitu postoje tri primarna stanja (uvjeta) u kojima datoteka može biti: modificirano stanje , stupnjevano stanje ili uređeno stanje .
Izmijenjeno stanje
Datoteka u izmijenjenom stanju je revidirana - ali nepovezana (nezabilježena) datoteka.
Drugim riječima, datoteke u izmijenjenom stanju su datoteke koje ste vi izmijenili, ali Git nije izričito naložio da ih nadgleda.
Etapno stanje
Datoteke u stupnjevanom stanju su modificirane datoteke koje su odabrane - u trenutnom stanju (verzija) - i pripremaju se za spremanje (urezivanje) u .git
spremište tijekom sljedeće snimke snimanja.
Jednom kada se datoteka postavi na scenu, podrazumijeva da ste izričito ovlastili Git za nadgledanje verzije te datoteke.
Predana država
Datoteke u urezanom stanju su datoteke koje su uspješno spremljene u .git
spremište.
Dakle, predana datoteka je datoteka u koju ste zabilježili njezinu postupnu verziju u Git direktorij (mapu).
Napomena: Stanje datoteke određuje mjesto na koje će je Git smjestiti.
Lokacije datoteka
Tri su ključna mjesta na kojima se mogu nalaziti verzije datoteke dok se verzija kontrolira pomoću Gita: radni direktorij , scensko područje ili Git direktorij .
Radni direktorij
Radni direktorij je lokalna mapa za datoteke projekta. To znači da je svaka mapa stvorena bilo gdje u sustavu radni direktorij.
Bilješka:
- Datoteke u modificiranom stanju nalaze se u radnom direktoriju.
- Radni direktorij razlikuje se od
.git
direktorija. Odnosno, vi stvarate radni direktorij, dok Git stvara.git
direktorij. - Pogledajte ovaj članak za usporedbu radi dodatnih razlika između dva spremišta.
Područje uprizorenja
Postupno područje - tehnički nazvano "indeks" na Git jeziku - datoteka je, koja se obično nalazi u .git
direktoriju i koja pohranjuje podatke o datotekama koje slijede u nizu i koje će biti uređene u .git
direktorij.
Bilješka:
- Datoteke u režiranom stanju nalaze se u scenskom području.
Git direktorij
.git
Imenik je mapa (koji se nazivaju „spremište”) koji Git stvara unutar radnog direktorija ste ga uputio pratiti.
Također, .git
mapa je mjesto u kojem Git pohranjuje baze podataka objekata i metapodatke datoteka koje ste mu zadali da nadgleda.
Bilješka:
.git
Imenik je život Git - to je predmet kopirati kada klonirati repozitorij s drugog računala (ili iz online platforme kao što su GitHub).- Datoteke u urezanom stanju nalaze se u Git direktoriju.
Osnovni Git tijek rada
Rad sa sustavom za kontrolu verzija Git izgleda otprilike ovako:

- Izmijenite datoteke u radnom direktoriju.
Imajte na umu da svaka datoteka koju promijenite postaje datoteka u izmijenjenom stanju .
- Selektivno postavite datoteke koje želite predati u
.git
direktorij.Imajte na umu da svaka datoteka koju upišete (dodate) u scensko područje postaje datoteka u stupnjevanom stanju .
Također, imajte na umu da inscenirane datoteke još nisu u
.git
bazi podataka.Postupak znači da se podaci o insceniranoj datoteci uključuju u datoteku (koja se naziva "indeks") u
.git
spremištu. - Datoteke koje ste postavili u datoteku pohranite u
.git
direktorij. Odnosno, trajno spremite snimku stupnjevanih datoteka u.git
bazu podataka.Imajte na umu da svaka verzija datoteke koju predate u
.git
direktorij postaje datoteka u uređenom stanju .
Suština do sada
Duga i kratka dosadašnja rasprava je da je Git sjajan sustav kontrole verzija za kompetentno izradu verzija, upravljanje i distribuciju datoteka. Pogledajte ovaj jednostavan vodič da biste naučili kako učinkovito koristiti Git.
Ali, sačekajte sekundu, ako Git pomaže u učinkovitom upravljanju i distribuciji različitih verzija datoteke projekta, koja je svrha GitHub-a?
Demistificiran GitHub
GitHub je mrežna platforma na kojoj korisnici mogu ugostiti Git spremišta. Pomaže vam u jednostavnom dijeljenju i suradnji na projektima s bilo kime u bilo koje vrijeme.
GitHub također potiče šire sudjelovanje u projektima otvorenog koda pružajući siguran način uređivanja datoteka u spremištu drugog korisnika.
Da biste ugostili (ili podijelili) Git spremište na GitHubu, slijedite korake u nastavku:
Korak 1: Registrirajte se za GitHub račun
Prvi korak za započinjanje hostinga na GitHubu je stvaranje osobnog računa. Posjetite službenu stranicu za registraciju da biste se prijavili.
Korak 2: Stvorite udaljeno spremište u GitHubu
Nakon prijave za račun, stvorite dom (spremište) u GitHubu za Git spremište koje želite dijeliti.
Korak 3: Povežite Git direktorij projekta s udaljenim spremištem
Nakon što stvorite udaljeno spremište za svoj projekt, povežite .git
direktorij projekta - koji se nalazi lokalno na vašem sustavu - s udaljenim spremištem na GitHubu.
Da biste se povezali s udaljenim spremištem, uđite u korijenski direktorij projekta koji želite dijeliti putem lokalnog terminala i pokrenite:
git remote add origin //github.com/yourusername/yourreponame.git
Bilješka:
- Zamijenite
yourusername
gornji kod svojim GitHub korisničkim imenom.Isto tako, zamijenite
yourreponame
imenom udaljenog spremišta s kojim se želite povezati. - Gornja naredba implicira da git treba dodati navedeni URL lokalnom projektu kao udaljenu referencu s kojom lokalni
.git
direktorij može komunicirati. origin
Opcija u naredbu gore je zadani naziv (skraćeni naziv) Git daje na poslužitelj daljinski repozitorij.Odnosno, umjesto URL-a poslužitelja, Git koristi kratko ime
origin
.- Nije obavezno pridržavati se zadanog imena poslužitelja. Ako više volite neko drugo ime
origin
, jednostavno ga zamijeniteorigin
ugit remote add
gornjoj naredbi bilo kojim imenom koje želite. - Uvijek imajte na umu da kratko ime poslužitelja (na primjer,
origin
) nije ništa posebno! Postoji samo lokalno - kako bi vam pomogao da lako uputite URL poslužitelja. Stoga ga promijenite u kratko ime na koje se lako možete pozvati. - Da biste preimenovali bilo koji postojeći udaljeni URL, upotrijebite
git remote rename
naredbu ovako:
git remote rename theCurrentURLName yourNewURLName
- Kad god klonirate (preuzmete) bilo koji udaljeni repo, Git automatski imenuje URL tog repoa
origin
. Međutim,git clone -o yourPreferredName
naredbom možete odrediti drugo ime . - Da biste vidjeli točan URL pohranjen za nadimke poput
origin
, pokrenitegit remote -v
naredbu.
Korak 4: Potvrdite vezu
Nakon što povežete svoj Git direktorij s udaljenim spremištem, provjerite je li veza uspješna pokretanjem git remote -v
naredbenog retka.
Nakon toga provjerite izlaz da biste potvrdili da je prikazani URL isti kao i udaljeni URL s kojim se namjeravate povezati.
Bilješka:
- Pogledajte članak "Povezivanje sa SSH-om" ako se želite povezati pomoću URL-a SSH umjesto HTTPS URL-a.
- Međutim, ako niste sigurni koji će udaljeni URL koristiti, pogledajte "Koji udaljeni URL trebam koristiti?" članak.
- Želite li promijeniti svoj udaljeni URL? Promjena URL-a daljinskog upravljača izvrstan je vodič.
Korak 5: Gurnite lokalni Git repo na udaljeni repo
Nakon uspješnog povezivanja vašeg lokalnog direktorija s udaljenim spremištem, tada možete početi gurati (prenositi) vaš lokalni projekt uzvodno.
Kad god ste spremni podijeliti svoj projekt negdje drugdje, na bilo kojem udaljenom repo-u, jednostavno uputite Git da gurne sve vaše predaje, grane i datoteke iz vašeg lokalnog .git
direktorija u udaljeno spremište.
Sintaksa koda koja se koristi za prijenos (guranje) lokalnog Git direktorija u udaljeno spremište je git push -u remoteName branchName
.
Odnosno, za guranje vašeg lokalnog .git
direktorija i pod pretpostavkom da je kratki naziv udaljenog URL-a "izvor", pokrenite:
git push -u origin master
Bilješka:
- Gornja naredba implicira da bi git trebao gurnuti vašu lokalnu matičnu granu u udaljenu matičnu granu koja se nalazi na URL-u pod nazivom origin .
- Tehnički,
origin
opciju možete zamijeniti URL-om udaljenog spremišta. Zapamtite,origin
opcija je samo nadimak URL-a koji ste registrirali u svoj lokalni.git
direktorij. - Oznaka
-u
(uzvodna / referentna zastavica praćenja) automatski povezuje.git
lokalnu granu direktorija s udaljenom granom. To vam omogućuje upotrebugit pull
bez ikakvih argumenata.
Korak 6: Potvrdite prijenos
Na kraju, vratite se na svoju stranicu GitHub spremišta kako biste potvrdili da je Git uspješno gurnuo vaš lokalni Git direktorij u udaljeno spremište.
Bilješka:
- Možda ćete trebati osvježiti stranicu udaljenog spremišta da bi se promjene odrazile.
- GitHub također ima besplatnu dodatnu mogućnost za pretvaranje vašeg udaljenog spremišta u funkcionalno web mjesto. Pogledajte "kako" u nastavku.
Objavite svoje web mjesto s GitHub stranicama
Nakon što gurnete svoj projekt u svoje udaljeno spremište, lako ga možete objaviti na webu i to tako:
- Provjerite je li naziv glavne HTML datoteke vašeg projekta
index.html
. - Na GitHubovoj web stranici otvorite spremište projekta koji želite objaviti i kliknite karticu postavki spremišta .
- Pomaknite se dolje do odjeljka GitHub stranice i promijenite izvornu granu iz none u master .
- Nakon toga prikazat će se obavijest "Vaša web lokacija je objavljena na //vaše-korisničkoime.github.io/vaša-github-repo-ime/ ".
- Sada svoj projekt možete pogledati i objaviti na navedenom URL-u.
Ovaj je odjeljak samo ogrebao površinu objavljivanja vašeg projekta s GitHubom. Da biste saznali više o GitHub stranicama, pogledajte ovu dokumentaciju "Rad s GitHub stranicama".
Ukratko
GitHub je mrežna platforma za hosting (ili dijeljenje) Git spremišta. Pomaže vam stvoriti put za jednostavnu suradnju na projektima s bilo kime, na bilo kojem mjestu i u bilo koje vrijeme.
Još uvijek sumnjate?
Jeste li još uvijek zbunjeni tankom linijom između Gita i GitHuba? Ne brinite - pokrila sam vas. Ispod je pet ključnih razlika između Gita i GitHuba.
Razlika 1: Git nasuprot GitHub - Primarna funkcija
Git je distribuirani sustav kontrole verzija koji bilježi različite verzije datoteke (ili skupa datoteka). Omogućuje korisnicima pristup, usporedbu, ažuriranje i distribuciju bilo koje snimljene verzije u bilo kojem trenutku.
Međutim, GitHub je uglavnom hosting platforma za hosting Git spremišta na mreži. Omogućuje korisnicima da svoje udaljeno spremište drže privatnim ili otvorenim za zajedničke napore.
Razlika 2: Git vs. GitHub - Operativna platforma
Korisnici instaliraju i upravljaju Gitom na svojim lokalnim računalima. To znači da je većina Gitovih operacija ostvariva bez interneta.
Međutim, GitHub je internetska usluga koja djeluje isključivo na mreži. To znači da vam je potreban internet za bilo što na GitHubu.
Razlika 3: Git vs. GitHub - Izumitelji
Linus Torvalds započeo je razvoj Gita u travnju 2005. godine.
Chris Wanstrath, PJ Hyett, Tom Preston-Werner i Scott Chacon osnovali su GitHub.com u veljači 2008.
Razlika 4: Git protiv GitHub - Održavači
U srpnju 2005. Linus Torvalds predao je Gitovo održavanje Juniou C. Hamanu - koji je od tada glavni održavatelj.
A Microsoft je kupio GitHub u listopadu 2018.
Razlika 5: Git protiv GitHub - natjecatelji
Popularne alternative Gitu su Mercurial, Team Foundation Version Control (TFVC), Perforce Helix Core, Apache Subversion i IBM Rational ClearCase.
GitHubovi najbliži konkurenti su GitLab, Bitbucket, SourceForge, Cloud Source Repositories i AWS CodeCommit.
Sve u svemu
Git i GitHub dva su različita entiteta koja vam pomažu u upravljanju i hostiranju datoteka. Drugim riječima, Git služi za kontrolu verzija datoteka, dok je GitHub platforma za hosting Git spremišta.
Korisni resurs
- Kako koristiti Git - zapanjujući vodič sa sjajnim savjetima