SlideShare a Scribd company logo
Versiecontrole met Git
  Openminds TechTalk 14 september 2011
              @openminds
Wat

• Versiecontrole
• Team-tool
• Offline
git basis gebruik
            demo
 gitimmersion - lab 3 tot lab 10
git: drie statussen

• “unstaged” aanpassingen
• “staged” aanpassingen
• “committed” aanpassingen
Git: het geheim

• Git slaat wijzigingen op
• Het is geen snapshot van de files
• Het is een verzameling/opeenvolging van
  diffs
diffs, geen snapshots
diffs, geen snapshots
diffs, geen snapshots
diffs, geen snapshots




Een diff tussen 1 en 2
diffs, geen snapshots




Een diff tussen 1 en 2
diffs, geen snapshots




Een diff tussen 1 en 2
diff
git log
sha
2ec50a5390f93ee7a52e5ba9edcdaa28e9d5dc4c




88a7a694e6e4e91263bab2980b23d9d4aaceef89
Remotes
Remotes
git remote add origin git@gitserver.openminds.be:hello.git


    Joren

   Server
   (origin)
git push origin master

Joren


Server
git push origin master

Joren


origin
git push github master
 git remote add github git@github.com:hello.git


Joren


github
git pull origin master

Joren


origin
git pull origin master

Joren


origin
git clone

Bram


origin
git clone git@gitserver.openminds.be:hello.git



Bram


origin
Master


• hoofd-lijn
HEAD

• “vertrekpunt voor de volgende diff ”
• uw plaats in de boom
• ‘daar waar ge op aan het werken zijt’
• een bol
HEAD - master
   master-branch




                   HEAD
git checkout 567hj87
      master-branch




             HEAD
git checkout master
     master-branch




                      HEAD
Git techtalk
Tags




v1      v1.1
Branches
Branches
Branches
Branches
Branches
Branches

           feature2
           master
           feature1
Branches


        demo
git immersion lab 24-28
Branches
       feature2




        master

   feature1
git checkout master



                HEAD
git checkout feature2


                 HEAD
git checkout gh6789j
HEAD
Merge
Merge
git merge feature1
git merge feature1



   merged feature1 into master
git merge feature1



         merged feature1 into master
Conflicten
master-branch
Conflicten
master-branch
Conflicten
master-branch



                 feature2-branch
Conflicten
Conflicten
git merge feature2
Conflicten
Rebase

                f   g
        e

a   b       c   d
git rebase feature1

                    f   g
            e

    a   b       c   d   e
git rebase feature1

                    f   g
            e

    a   b       c   d   e
git rebase feature1

                    f   g
            e

    a   b       c   d   e   f
git rebase feature1

                    f   g
            e

    a   b       c   d   e   f
git rebase feature1

                    f   g
            e

    a   b       c   d   e   f   g
git rebase feature1

                    f   g
            e

    a   b       c   d   e   f   g
git rebase master

                   f   g
           e

   a   b       c   d
git rebase master

                   e

   a   b   c   d
git rebase master

                   e

   a   b   c   d
git rebase master

                       f
                   e

   a   b   c   d
git rebase master

                       f
                   e

   a   b   c   d
git rebase master

                       f   g
                   e

   a   b   c   d
git rebase master

                       f   g
                   e

   a   b   c   d
Conflicten
Remotes
Remotes

joren

Server

bram

         HEAD
Remotes

joren

Server

bram            fetch

         HEAD
Pull


• eerst een fetch
• dan rebase of merge
Pull - rebase of merge

• kies maar
• rebase legt het probleem bij jouw changes
• merge moet je anderen hun changes
  aanpassen
Dagelijks gebruik
Normale werkdag

• git pull
• <werk>
• git push
Normaal <werk>
• (maak veranderingen - programmeer)
• git add
• git commit

• git rm
• git mv ...
Doh!

• van stage naar unstage:
                       git reset HEAD filename
• van commit naar niet-commit:
                                    git revert
Doh!

• unstaged wijzigingen weggooien
                         git checkout filename
• enkele commits weggooien
                       git reset --hard sha123
Extra’s
cherry-picking
cherry-picking
aliases configureren
     git immersion lab 11
.gitignore
submodules
bare / github / gitorious
git commit --amend
git bisect
boomstructuur en gc
git hooks
git send-email 5674h84hjks834
git stash
git stash pop
git add -i
git add -p hello.rb
git checkout branch --track remote/branch
git svn
GIT Immersion
http://www.gitimmersion.com
Pro Git
http://progit.org/book/
Git Cheat Sheet
http://www.cheat-sheets.org/saved-copy/git-cheat-sheet-large.png
Bedankt!
  www.openminds.be - @openminds
     Managed hosting services

Presentatie door @joren en @wonko_be

More Related Content

PDF
Talk - git task managers and ci
PDF
Git for the win!
PDF
CraftCamp for Students - Introduction to git
PDF
Introduction to Git
PDF
An introduction to git
PDF
Git - The Incomplete Introduction
PDF
Git Hogent
PPTX
Development Tools - Git SCM
Talk - git task managers and ci
Git for the win!
CraftCamp for Students - Introduction to git
Introduction to Git
An introduction to git
Git - The Incomplete Introduction
Git Hogent
Development Tools - Git SCM

More from joren de groof (12)

PDF
KEY
Something something rack
PDF
Validation
PDF
PDF
Rubyandrails
PDF
Rails Servers
PDF
PDF
PDF
PDF
Mistakes
PDF
Cucumber
Something something rack
Validation
Rubyandrails
Rails Servers
Mistakes
Cucumber
Ad

Git techtalk

Editor's Notes