Andrise programmeerimisalane WIKI

Git seadistamine tööks GitHub teenusega

Git on versioonihaldustarkvara, mis lubab korraga mitmel inimesel samu faile toimetada ning mis tegeleb ka nende failide varundamisega. Iga projektis oleva faili muudatus registreeritakse ning seega saab hiljem tagantjärele taastada failide suvalist seisu.

GitHub on veebipõhine keskkond, mis pakub git-põhist majutust ja mis võimaldab mugavalt projektis olevaid faile veebi kaudu vaadata (ja osaliselt ka toimetada). Avatud lähtekoodiga projektide majutus on tasuta, kuid suletud projektide korral tuleb maksta kuutasu.

Git installeerimine

Linuxis on Git (käsklus git) tõenäoliselt kohe olemas, Mac'is saab järgida järgmist õpetust, siin aga vaatame, kuidas seda teha Windowsis (kuna Windowsis on git'i tööle saamine kõige keerulisem).

Esiteks tuleb minna msysGit lehele ja tõmmata sealt vajalik installer - versioone on erinevaid, mina tõmbasin ja käivitasin faili msysGit-netinstall.exe. Installeerimisel tasub kasutada vaikimisi pakutud kataloogi (c:/msysgit) ja seda ise mitte muuta.

Installer seab arvutisse MinGW põhise rakenduse Git jooksutamiseks. Tegu on sisuliselt Linuxi emulaatoriga ja selline näeb see ka välja.


Joonis 1. msysGit konsool

Järgmiseks on tarvis genereerida SSH võtmed, mille alusel saavad arvuti ja GitHub server omavahel suhelda. Selle jaoks tuleb käivitada joonisel 1. olev konsooliprogramm, mille leiab aadressilt c:/msysgit/msys.bat. Konsooliprogrammis tuleb minna kataloogi juurde, kus hakkavad olema projekti failid (see võiks olla eelnevalt juba loodud). Kui kataloog asub näiteks aadressil C:\Projektid\GitTest, siis saab sinna minna käsklusega

cd /c/projektid/gittest

SSH võtmete genereerimiseks tuleb järgmiseks sisestada vastav käsk koos oma e-posti aadressiga

ssh-keygen -C "gitkasutaja@hotmail.ee" -t rsa

Võtmete genereerimisel võib kõikidele küsimustele võib jätta vastamata ja vajutada edasiminekuks lihtsalt enterit. Sellisel juhul küll jäävad võtmed parooliga kaitsmata, kuid isikliku arvuti puhul pole see tõenäoliselt probleemiks.

Seejärel võib minna GitHub lehele ja luua endale uus konto. E-posti aadressiks tuleks panna sama väärtus mille alusel sai genereeritud SSH võtmed. Vajaliku SSH avaliku võtme sisu leiab failist C:\Documents and Settings\kasutaja\.ssh\id_rsa.pub (Windows XP) või C:\Users\kasutaja\.ssh\id_rsa.pub (Vista). Kopeeri selle faili sisu registreerimisvormis SSH võtme kasti.


Joonis 2. Konto loomine GitHub'is

Järgmisena tuleks git konsoolis seada paika kasutaja seaded järgmiste käsklustega (asenda kasutajanimi ja e-posti aadress konto registreerimisel asutatud andmetega)

git config --global user.name "gitkasutaja"
git config --global user.email "gitkasutaja@hotmail.ee"

Ja peale seda ongi Git kasutamiseks valmis.

Töö GitHub projektidega

Uue projekti saab GitHubis luua klikates nupul „New repository.“ Kui projekt on loodud tuleb see sisuda oma arvutiga. Projekti esilehelt tuleb kopeerida projekti identifikaator, mis on kujul git@github.com:user/projekt.

Töökoopia loomine

Projekti sidumiseks kohaliku arvuti kataloogiga tuleb selles kataloogis käivitada järgmised käsklused (kõik käsklused käivad Windowsis installeeritud Git konsooli läbi, Linuxi ja Mac'i puhul saab kasutada tavalist konsooli).

git init
git remote add origin git@github.com:andris9/jStorage.git
git pull origin master

Käskluste sisestamisel asenda git@github.com:andris9/jStorage.git oma projekti vastava identifikaatoriga. Sellega ongi töökoopia loodud.

Failide üleslaadimine

Selle jaoks, et muudetud ja lisatud GitHubi saata, tuleb käivitada jöärgmised käsud:

git add *
git commit -m "kommentaar"
git push origin master

Git võimaldab pidada ka kohalikku versioonihaldust, seega kui parasjagu netiühendust pole võib kolmanda käskluse ära jätta ja piirduda vaid esimese kahega - nii saavad failid igal juhul versioonitud. Netiühenduse saabudes võib kolmanda käsu ära teha, siis kopeeritakse muudatused ka netti.

Failide uuendamine

Töökoopia failide uuendamine serverist on vajalik juhul kui keegi on vahepeal faile muutnud. Soovitavalt tuleb seda teha iga kord enne töö alustamist.

git pull origin master