Introduksjon til Git
Johannes Knutsen og Stein Magnus Jodal
Frokostmøte, 14. april 2010
Slide 2
Slide 2 text
Git?
Distribuert versjonskontroll
Linus Torvalds i 2005
Open source
Slide 3
Slide 3 text
Hvem bruker Git?
Linux kernel
Perl
Gnome
Qt (e.g. Nokia-Jørgen)
Ruby on Rails
Android
Wine
Fedora
Debian
X.org
VLC
Mopidy
Snowflake (e.g. not-on-email-butt-butt-on-email-Anders)
Slide 4
Slide 4 text
Sentralisert versjonskontroll
. . . slik som Subversion
Hver klient har en working copy
Repository på én sentral server
Commits skjer til serveren
Slide 5
Slide 5 text
Desentralisert versjonskontroll
. . . slik som Git
Hver klient har en working copy
Hver klient har et komplett repository med all historikk
Commits skjer til lokalt repository
Slide 6
Slide 6 text
Fordeler ved Git
Mange mulige arbeidsflyter (inkl. sentralisert)
Lett å lage nytt repo
Lett å dele repo
Commit uten nett
Billig å branche
Enkelt å merge
Én .git-katalog, ikke .svn overalt
Lynraskt pga. det lokale repoet
GitHub
Slide 7
Slide 7 text
Ulemper ved Git
Overgangen fra Subversion kan være brå
Terminalskrekk kan være et hinder
Slide 8
Slide 8 text
Kom i gang
Nytt prosjekt
cd prosjektet−mitt
git init .
Første commit
git add README
git commit −m " F i r s t commit "
Slide 9
Slide 9 text
Kom i gang
Nytt prosjekt
cd prosjektet−mitt
git init .
Første commit
git add README
git commit −m " F i r s t commit "
Slide 10
Slide 10 text
Kom i gang
Klone et repo
git clone git : / / github . com / jodal / mopidy . git
cd mopidy
Ny feature eller en bugfix? Branch!
git branch bug1337
Endre working dir til den nye branchen
git checkout bug1337
Slide 11
Slide 11 text
Kom i gang
Klone et repo
git clone git : / / github . com / jodal / mopidy . git
cd mopidy
Ny feature eller en bugfix? Branch!
git branch bug1337
Endre working dir til den nye branchen
git checkout bug1337
Slide 12
Slide 12 text
Kom i gang
Klone et repo
git clone git : / / github . com / jodal / mopidy . git
cd mopidy
Ny feature eller en bugfix? Branch!
git branch bug1337
Endre working dir til den nye branchen
git checkout bug1337
Slide 13
Slide 13 text
Kom i gang
Fiks buggen
Commit til bug1337-branchen
git add changed_file another / changed_file
git commit −m " Fixed bug #1337 "
Sjekk ut master igjen
git checkout master
Hvor er endringene?
Slide 14
Slide 14 text
Kom i gang
Fiks buggen
Commit til bug1337-branchen
git add changed_file another / changed_file
git commit −m " Fixed bug #1337 "
Sjekk ut master igjen
git checkout master
Hvor er endringene?
Slide 15
Slide 15 text
Kom i gang
Fiks buggen
Commit til bug1337-branchen
git add changed_file another / changed_file
git commit −m " Fixed bug #1337 "
Sjekk ut master igjen
git checkout master
Hvor er endringene?
Slide 16
Slide 16 text
Kom i gang
Fiks buggen
Commit til bug1337-branchen
git add changed_file another / changed_file
git commit −m " Fixed bug #1337 "
Sjekk ut master igjen
git checkout master
Hvor er endringene?
Slide 17
Slide 17 text
Kom i gang
Merge inn branchen
git merge bug1337
Slett branchen om du vil
git branch −d bug1337
Slide 18
Slide 18 text
Kom i gang
Merge inn branchen
git merge bug1337
Slett branchen om du vil
git branch −d bug1337
Slide 19
Slide 19 text
git svn
Sjekk ut
git svn clone −−stdlayout https : / / svn . iterate . no / leancast /
Kod i vei
Commit lokalt
git commit −m "A nice commit message"
Slide 20
Slide 20 text
git svn
Sjekk ut
git svn clone −−stdlayout https : / / svn . iterate . no / leancast /
Kod i vei
Commit lokalt
git commit −m "A nice commit message"
Slide 21
Slide 21 text
git svn
Sjekk ut
git svn clone −−stdlayout https : / / svn . iterate . no / leancast /
Kod i vei
Commit lokalt
git commit −m "A nice commit message"
Slide 22
Slide 22 text
git svn
Hent endringer fra Subversion
git svn rebase
Dytt dine endringer fra Git til Subversion sentralt
git svn dcommit
Slide 23
Slide 23 text
git svn
Hent endringer fra Subversion
git svn rebase
Dytt dine endringer fra Git til Subversion sentralt
git svn dcommit
Slide 24
Slide 24 text
GitHub
"Social coding"
Gratis prosjekthosting for open source
Betalt prosjekthosting for closed source
Visualisering av repo og historikk
Mye god dokumentasjon
http://github.com/