Git
NB SEE ON TOORES PALA:)
Sissejuhatus
Versioonihalduse vajaduses pole vaja programmeerijaid veenda. Kui oled algaja ja pole sellest midagi kuulnud, siis loe http://et.wikipedia.org/wiki/Versioonihaldus
Põhimõisted
Kesksed vs hajusad süsteemid
Paigaldamine Ubuntu Linux keskkonnas
apt-get install git-core
Esmane seadistamine
Seadistada tuleb kasutajanimi, e-posti aadress, tekstiredaktor, ja merge vahend (diff programm)
git config --global user.name "Sinu Nimi"
git config --global user.email sinu@aadress.ee
git config --global core.editor vim
git config --global merge.tool vimdiff
Uue projekti loomine olemasolevatest failidest
Mine kataloogi, milles isalduvast soovid teha git hoidla ja initsialiseeri see.
git init
Projekti kloonimine enda arvutisse
git clone git://robot.itcollege.ee/robotex.git
Uue faili või failide lisamine versioonihaldusesse
git add *.cpp
git add *.h
Commit
git commit –m 'Esimene versioon'
Hoidla seisundi vaatamine
git status
Ingnoreerimine
Kõiki faile ei ole mõistlik versioonihaldusesse kaasata. Näiteks C objektfaile, varukoopiaid jne. Failide versioonihaldusest välja jätmine toimub failis .gitignore kirjeldatud mustrite alusel.
*.[oa]
*~
*.jpg
Lingid
Suurepärane GIT õpe. siit võiks alustada
Linus GIT versioonihaldusest
Linus ei õpeta siin GIT kasutamist vaid räägib, miks GIT on omasugune ja sobiv. Kohustuslik vaatamisvara, kui tunned versioonihalduse alustõdesid ja ka puuduseid. Näiteks oled lahendanud merge konflikte ja teinud harusid näiteks SVN hoidlas ja üritanud neid hallata.
Pikk lugu 1h10m
Vaba interpretatsioon järgnevast videost.
- CVS - paha paha:) "aka devil". SVN on selle mõttetu vend. (Linus soovitab SVN kasutajatel saalist lahkuda:) Kui teile meeldib CVS, siis peaksite olema asutuses, kes teie vaimse tervisega tegeleb.
- bitkeeper - positiivne (inspireerinud giti, kuigi git on bitkeeperist väga erinev)
- git kasutamine algusaastatel nõudis korrsliku ajujõudu:)
- Keskne kooriserver pole hea
- merge CVSis on suur naerukoht (complete disaster=how stupid people are)
- Igal arendajal on oma haru
- Mercurial on samuti heal põhimõttel tehtud
- hash on hea, et tagada terviklikus (kettal on halb blokk, siis teised süsteemid annavad vigase väljavõtte teie koodist) terviklikkus on GIT puhul tagatud
- GIT on kiire
GIT
Joeli arvamus hajusatest versioonikontrollisüsteemidest
Gource software version control visualization - Git to v1.0
PS: uusi asju siit videost ei õpi.