petak, 19 aprila, 2024
Sam svoj majstor

Git (1. deo): Osnove

Autori: Zlatan Vasović, Goran Mekić

Git je distributed revision control i source code management (SCM) sistem sa naglaskom na brzini. Osmislio ga je i razvio Linus Torvalds prvenstveno za razvoj i održavanje Linux kernel-a. Danas se koristi za sve tipove slobodnog softvera. Objavljen je kao slobodan softver pod uslovima GNU General Public License v2 (GPL v2).

Neki od programera Git-a su Linus Torvalds i Junio Hamano. Sve koji su doprineli razvoju Git-a možemo pronaći na https://github.com/git/git/graphs/contributors. Sam Git je napisan u C-u, dok su neki od dodatnih delova napisani u Bourne Shell, Perl, JavaScript, Tcl i Python programskim jezicima.

Git je engleski sleng za glupu ili neprijatnu osobu. Torvalds je rekao: „Ja sam samoljubiv gad i ja nazivam svoje projekte po sebi. Prvo Linux, sada Git“. Na Manual stranicama Git-a piše da je Git glupi tragač sadržaja. Čak i u README-u zvaničnog Git skladišta – https://github.com/git/git piše „GIT – the stupid content tracker“.

Razvoj Git-a je počeo kada je mnogo programera Linux kernel-a odustalo od BitKeeper-a, zatvorenog, vlasničkog SCM-a koji je ranije korišćen za održavanje projekta.

Razvoj Git-a je počeo 3. aprila 2005. godine a projekat je zvanično najavljen 6. aprila. Hosting projekta je postao samostalan 7. aprila. Prvi veliki uspeh je bio spajanje više razvojnih grana koje je uspešno urađeno 18. aprila. Torvalds je ostvario svoje ciljeve – 29. aprila je testirano čuvanje zakrpa za Linux kernel tree u Git-u. Rezultat je bila stopa od 6,7 po sekundi. Prva verzija kernel-a koja je održavana na Git-u je v2.6.12. Njeno održavanje je počelo 16. juna.

Društveni razvoj

Zašto ne napraviti društvenu mrežu (na neki način) za Git? – pitali su se osnivači GitHub-a. Upravo zbog društvenog razvoja je nastao GitHub a za njim i BitBucket (on ima i Mercurial ali ćemo spomenuti samo Git deo). Osnovna ideja za društveni razvoj je komunikacija između programera i korisnika (u svim pravcima).

GitHub

Nastanak i ideja GitHub-a je objašnjenja u pasusu gore. Na GitHub stranicama je postavljena zvanična web stranica Git-a, http://git-scm.com.

Kako napraviti GitHub nalog? Prvo idemo na https://github.com. Zatim nalazimo polje za registraciju kao na slici 1.
Korisničko ime koji odaberemo može sadržati samo slova engleskog alfabeta i brojeve. Naša (srpska) slova nisu dozvoljena.
* Elektronska pošta (e-mail) nam treba radi verifikacije.
* Lozinka mora imati najmanje 7 karaktera i sadržati bar jedan broj.
Nakon toga biramo Sign up for free. Nakon toga možemo odabrati i neki „paket“ koji se plaća ali zašto bismo? Paketi koji se plaćaju se uglavnom koriste za privatna skladišta.

Pri vrhu stranice, pored linka do našeg profila se nalazi dugme uz pomoć kojeg pravimo novo skladište. Možemo napraviti skladište odlaskom na https://github.com/new. Sada podešavamo skladište.
* Polje Owner (vlasnik) ostavljamo isto (kasnije ćemo govoriti o timovima). Pretpostavićemo da je vlasnik naloga „korisnik“
* Polje Repository name (ime skladišta) „popunjavamo“ kratkim i zanimljivim nazivom (na primer „moje skladište“)
* Polje Description (opis) možemo ostaviti praznim, ipak, ako želimo, možemo ga popuniti
* Uvek biramo Public repo
* „Initialize this repository with a README“ čekirati
* Add .gitignore – najbolje je da ostavimo None
Gotovo! Naše prvo skladište je napravljeno!

Kako funkcionišu linkovi na GitHub-u? Svaki korisnik ima svoj direktorijum. Dakle, https://github.com/korisnik će nas odvesti do profila određenog korisnika. Svako skladište je kao poddirektorijum. Na primer https://github.com/korisnik/repo.

Git možemo probati na adresi http://try.github.com.

Ukoliko imamo predlog/primedbu za GitHub, možemo kontaktirati zaposlene na https://github.com/c. Odgovor će stići na našu elektronsku poštu.

Shell pristup

SSH

Ukoliko ne želimo da pristupamo preko HTTPS protokola, tu je SSH koji je dokazano sigurniji. Za SSH pristup Git-u nam je potreban SSH ključ. Ovaj tutorijal će nam pomoći oko pravljenja SSH ključeva → https://help.github.com/articles/generating-ssh-keys.

Primer korišćenja
  git clone ssh://git@github.com/korisnik/mojrepo.git
cd mojrepo
git log
  echo 'Sadržaj datoteke' >novi.txt 
git add novi.txt
git commit -m 'Test commit'
git push
  git pull

Nastavak