Sei (k)ein
Blödmann
und nimm Git!
Einführung in Versionskontrolle mit Git




Stefan Imhoff
stefanimhoff.de
Django-UserGro...
Git       /gɪt/
Nomen (Britisch, Slang)



1.   Blödmann, Depp, Idiot
»Ich bin ein egoistischer Bastard und
benenne alle meine Projekte nach mir selbst.
Zuerst Linux, jetzt Git.«
             ...
Fakten & Statistiken
     Warum Git die Mitbewerber abhängt
Init (Sekunden)




                           0,60



              0,059
0,024

 Git        Mercurial     Bazaar


     ...
Add (Sekunden)




8,535



             0,368       2,381

 Git       Mercurial     Bazaar


                         Que...
Status (Sekunden)




                            14,744



0,451          1,946
 Git         Mercurial      Bazaar


    ...
Diff (Sekunden)




                          14,248



0,543         2,189

 Git        Mercurial     Bazaar


          ...
Tag (Sekunden)




                         1,892

             1,201

0,056

 Git       Mercurial     Bazaar


          ...
Log (Sekunden)




                         9,055


0,711        2,65

 Git       Mercurial     Bazaar


                 ...
Commit, groß (Sekunden)




                        23,002

12,48        12,5


 Git       Mercurial    Bazaar


         ...
Commit, klein (Sekunden)




                        1,139

            0,517
0,086

 Git      Mercurial    Bazaar


     ...
Branch, kalt (Sekunden)




                94,681
                            82,249



1,161
 Git           Mercurial   ...
Branch, heiß (Sekunden)




                        39,411



             12,3
0,07
Git        Mercurial    Bazaar


    ...
Repository (MB)
                Gesamtes Verzeichnis (MB)
                                   64
                          ...
Clone (Sekunden)




                   311

119     144
                                   64

Git   Mercurial   Bazaar  ...
Theorie & Grundlagen
      Wer das versteht, ist klar im Vorteil …
.git
SHA-I
Hallo, Welt!
8095a184a9b9ae8a14a0f0cde697c7f7cf1410e6
Meta-Informationen
(Datum, Name, Ort)
Warum?
• Konsistente Inhalte
• Gleicher Inhalt = gleicher Blob
Objekte
• blobs
• trees
• commits
• tags
Blobs
Dateiinhalte
Trees
• blobs
• trees
Commits
• tree
• parent
• author
• commiter
• message
• datetime
Tags
• object
• type
• tagger
• message
Konfiguration
    Sag mir wie du heißt, Baby!
git config
git config --global user.name "Stefan Imhoff"
git config --global user.email "stefan@imhoff.name"
.gitignore
Tägliche Arbeit
       Business, not as usual
git clone
git init
git status
Local
Working
Directory
git add
Local
Working               Staging
Directory              Area



            git add
git commit
Local
Working               Staging                  Local
Directory              Area                  Repository



    ...
master
git log
git rm
git diff
git branch
master



neuerzweig
git checkout
Local
Working                 Staging                  Local
Directory                Area                  Repository



...
git merge
Local
Working                 Staging                  Local
Directory                Area                  Repository



...
master



neuerzweig
git tag
Probleme & Wartung
        Keine Panik auf der Titanic
git commit --amend
git checkout
git reset
git blame
git revert
git mergetool
git bisect
Good   ?   Bad
Good   Good   ?   Bad
Good   Good   ?   Bad   Bad
git gc
Remote
 E.T. nach Hause telefonieren
Lokales Repository
  veröffentlichen
git remote
git fetch
Local                                           Remote
Working                 Staging                  Local             ...
git pull
Local                                           Remote
Working                 Staging                  Local             ...
git push
Local                                              Remote
Working                 Staging                  Local          ...
git submodules
Profi-Techiken
       Der Wuxi-Fingergriff von Git
Leere Branches anlegen
History verändern
git svn
git svn rebase
git svn dcommit
git instaweb
git stash
Klicki-Bunti
   Aber gibt’s dat auch für Maus?
Git Gui
Git Extensions
TortoiseGit
GitK
GitX
Und los geht’s …
Bereit Versionsgeschichte
zu schreiben?
Vielen Dank!
Eingesetzte Fotos
Die in dieser Präsentation eingesetzten
Fotos stammen von iStockphoto.



8916384   7941768   3391085   ...
Eingesetzte Schriften
Delicious
http://www.josbuivenga.demon.nl/delicious.html

Baskerville (&)
Fragen & Antworten
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Nächste SlideShare
Wird geladen in …5
×

Sei (k)ein Blödmann und nimm Git!

22.654 Aufrufe

Veröffentlicht am

Git-Anfängerpräsentation, auf der Django UserGroup Hamburg vorgetragen.

Veröffentlicht in: Bildung, Technologie, News & Politik
0 Kommentare
13 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
22.654
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
71
Aktionen
Geteilt
0
Downloads
161
Kommentare
0
Gefällt mir
13
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Sei (k)ein Blödmann und nimm Git!

  1. 1. Sei (k)ein Blödmann und nimm Git! Einführung in Versionskontrolle mit Git Stefan Imhoff stefanimhoff.de Django-UserGroup Hamburg 04.08.2009
  2. 2. Git /gɪt/ Nomen (Britisch, Slang) 1. Blödmann, Depp, Idiot
  3. 3. »Ich bin ein egoistischer Bastard und benenne alle meine Projekte nach mir selbst. Zuerst Linux, jetzt Git.« – Linus Torvalds
  4. 4. Fakten & Statistiken Warum Git die Mitbewerber abhängt
  5. 5. Init (Sekunden) 0,60 0,059 0,024 Git Mercurial Bazaar Quelle: Scott Chacon, whygitisbetterthanx.com
  6. 6. Add (Sekunden) 8,535 0,368 2,381 Git Mercurial Bazaar Quelle: Scott Chacon, whygitisbetterthanx.com
  7. 7. Status (Sekunden) 14,744 0,451 1,946 Git Mercurial Bazaar Quelle: Scott Chacon, whygitisbetterthanx.com
  8. 8. Diff (Sekunden) 14,248 0,543 2,189 Git Mercurial Bazaar Quelle: Scott Chacon, whygitisbetterthanx.com
  9. 9. Tag (Sekunden) 1,892 1,201 0,056 Git Mercurial Bazaar Quelle: Scott Chacon, whygitisbetterthanx.com
  10. 10. Log (Sekunden) 9,055 0,711 2,65 Git Mercurial Bazaar Quelle: Scott Chacon, whygitisbetterthanx.com
  11. 11. Commit, groß (Sekunden) 23,002 12,48 12,5 Git Mercurial Bazaar Quelle: Scott Chacon, whygitisbetterthanx.com
  12. 12. Commit, klein (Sekunden) 1,139 0,517 0,086 Git Mercurial Bazaar Quelle: Scott Chacon, whygitisbetterthanx.com
  13. 13. Branch, kalt (Sekunden) 94,681 82,249 1,161 Git Mercurial Bazaar Quelle: Scott Chacon, whygitisbetterthanx.com
  14. 14. Branch, heiß (Sekunden) 39,411 12,3 0,07 Git Mercurial Bazaar Quelle: Scott Chacon, whygitisbetterthanx.com
  15. 15. Repository (MB) Gesamtes Verzeichnis (MB) 64 61 53 43 45 34 24 Git Mercurial Bazaar Subversion Quelle: Scott Chacon, whygitisbetterthanx.com
  16. 16. Clone (Sekunden) 311 119 144 64 Git Mercurial Bazaar Subversion Quelle: Scott Chacon, whygitisbetterthanx.com
  17. 17. Theorie & Grundlagen Wer das versteht, ist klar im Vorteil …
  18. 18. .git
  19. 19. SHA-I
  20. 20. Hallo, Welt!
  21. 21. 8095a184a9b9ae8a14a0f0cde697c7f7cf1410e6
  22. 22. Meta-Informationen (Datum, Name, Ort)
  23. 23. Warum? • Konsistente Inhalte • Gleicher Inhalt = gleicher Blob
  24. 24. Objekte
  25. 25. • blobs • trees • commits • tags
  26. 26. Blobs
  27. 27. Dateiinhalte
  28. 28. Trees
  29. 29. • blobs • trees
  30. 30. Commits
  31. 31. • tree • parent • author • commiter • message • datetime
  32. 32. Tags
  33. 33. • object • type • tagger • message
  34. 34. Konfiguration Sag mir wie du heißt, Baby!
  35. 35. git config
  36. 36. git config --global user.name "Stefan Imhoff" git config --global user.email "stefan@imhoff.name"
  37. 37. .gitignore
  38. 38. Tägliche Arbeit Business, not as usual
  39. 39. git clone
  40. 40. git init
  41. 41. git status
  42. 42. Local Working Directory
  43. 43. git add
  44. 44. Local Working Staging Directory Area git add
  45. 45. git commit
  46. 46. Local Working Staging Local Directory Area Repository git add git commit
  47. 47. master
  48. 48. git log
  49. 49. git rm
  50. 50. git diff
  51. 51. git branch
  52. 52. master neuerzweig
  53. 53. git checkout
  54. 54. Local Working Staging Local Directory Area Repository git add git commit git checkout
  55. 55. git merge
  56. 56. Local Working Staging Local Directory Area Repository git add git commit git checkout git merge
  57. 57. master neuerzweig
  58. 58. git tag
  59. 59. Probleme & Wartung Keine Panik auf der Titanic
  60. 60. git commit --amend
  61. 61. git checkout
  62. 62. git reset
  63. 63. git blame
  64. 64. git revert
  65. 65. git mergetool
  66. 66. git bisect
  67. 67. Good ? Bad
  68. 68. Good Good ? Bad
  69. 69. Good Good ? Bad Bad
  70. 70. git gc
  71. 71. Remote E.T. nach Hause telefonieren
  72. 72. Lokales Repository veröffentlichen
  73. 73. git remote
  74. 74. git fetch
  75. 75. Local Remote Working Staging Local Remote Directory Area Repository Repository git add git commit git fetch git checkout git merge
  76. 76. git pull
  77. 77. Local Remote Working Staging Local Remote Directory Area Repository Repository git add git commit git fetch git checkout git merge
  78. 78. git push
  79. 79. Local Remote Working Staging Local Remote Directory Area Repository Repository git add git commit git push git fetch git checkout git merge
  80. 80. git submodules
  81. 81. Profi-Techiken Der Wuxi-Fingergriff von Git
  82. 82. Leere Branches anlegen
  83. 83. History verändern
  84. 84. git svn
  85. 85. git svn rebase git svn dcommit
  86. 86. git instaweb
  87. 87. git stash
  88. 88. Klicki-Bunti Aber gibt’s dat auch für Maus?
  89. 89. Git Gui
  90. 90. Git Extensions
  91. 91. TortoiseGit
  92. 92. GitK
  93. 93. GitX
  94. 94. Und los geht’s … Bereit Versionsgeschichte zu schreiben?
  95. 95. Vielen Dank!
  96. 96. Eingesetzte Fotos Die in dieser Präsentation eingesetzten Fotos stammen von iStockphoto. 8916384 7941768 3391085 1945196 5823044 2699704 7952299 3142537 7420635 7692057 4144887
  97. 97. Eingesetzte Schriften Delicious http://www.josbuivenga.demon.nl/delicious.html Baskerville (&)
  98. 98. Fragen & Antworten

×