SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Thursday, March 1, 12   1
F*** yourself



Thursday, March 1, 12                   2
F*** yourself
                                  TG I
                          w i th



Thursday, March 1, 12                    3
N SFW        Disclaimer
  Eigentlich hab ich überhaupt keine Ahnung von dem
  was ich hier gerade rede. Sei es drum, ich wurde
  durch die Mitarbeit in einem Open Source Projekt
  dazu gezwungen, git zu verwenden.

                        *sigh* Die Welt war doch so schön mit SVN!

  Außerdem ist das eine gute Gelegenheit diese ganzen
  blöden Animationen hier mal auszuprobieren. Die
  Präsentation steckt voller Copyright violations. Ich
  bin ein Opfer der Google Bildersuche.
Thursday, March 1, 12                                                4
Versionskontrolle ist was für Hustensaftlutscher!

                                  SVN vs. GIT


     GIT ist total einfa




       Schei sse! Ohne goog le gehts net?!
Thursday, March 1, 12                                       5
Backups?!



                        Weichei



Thursday, March 1, 12                 6
Protoko llieren

                       hi vieren
                   Arc

        Wie derhers tellen



Thursday, March 1, 12              7
Pro
                         Ar   tok
                            chi ollier
                        Wi     vie       en
                           ede ren
                              rhe
                                  rst
                                      elle
                                           n




Thursday, March 1, 12                          8
Klingt gut.
                        Was nehm ich?

Thursday, March 1, 12                   9
SVN vs. GIT
Thursday, March 1, 12                 10
Su
                          bve
                        zen   rsi
                            tra   on
                                l




Thursday, March 1, 12                  11
Git
                        dez
                            ent
                                ral




Thursday, March 1, 12                 12
Thursday, March 1, 12   13
SV
                                           N


 * Wird sehr gut von anderen Tools unterstützt

 * Lässt sich “relativ” leicht verstehen

 * Ihr könnt zentrales Rechtemanagement
   betreiben



Thursday, March 1, 12                            14
SV
                                                    N


                  * Langsam

                  * Historie ist dumm

                  * Branching ist ziemlich anstrengend

                  * Ohne Server unbrauchbar


Thursday, March 1, 12                                    15
GIT


                  * Sau schnell

                  * Merge ist einfach

                  * Branch, Branch, Branch ...

                  * Intelligente Historie

                  * Geht auch ohne Server

Thursday, March 1, 12                                  16
GIT



           * Steiniger Einstieg
           * Think dif <!-- © violation here! -->
             Paradigmenwechsel
           * Linux/Unix simpel, <omg>Windows</omg>

           * Rechtemanagement

Thursday, March 1, 12                                17
Git




Thursday, March 1, 12         18
Thursday, March 1, 12   19
Beg
                           rif
                              fe




Thursday, March 1, 12              20
* Git verwaltet eine Sammlung von
           Dateien und deren Änderungen über die
           Zeit

         * All diese Informationen werden in der
           Datenstruktur Repository gespeichert




Thursday, March 1, 12                              21
Wie kommt man da hin?

                        * Ihr braucht git

                        * Nen bissle Grundkonfiguration

   git config --global user.name "FirstName LastName"
   git config --global user.email "user@example.com"

   git config --global color.branch "auto"
   git config --global color.status "auto"
   git config --global color.diff "auto"

   cd PATH/TO/MY/AWESOME/PROJECT
   git init
Thursday, March 1, 12                                     22
* Eine Sammlung von Dateien, die einen
     Projektstand wiederspiegeln

   * Die Referenz auf sein parent commit object!


   * SHA1 name, 40 Zeichen identifizieren das
     commit object. Erzeugter Hash von
     relevanten Teilen des commits ->
     identische commits haben den gleichen
     Namen


Thursday, March 1, 12                              23
Was bedeutet das?




Thursday, March 1, 12   24
DIE git IDEE?!

   Versionskontrolle ist die Manipulation des
   Graphen mit all seinen commits.



          ihr Abf ragen o der Ä nderungen macht,
   W e nn
        n es euch helfen da  s im Hinterkopf zu
   kan
   behalten.



Thursday, March 1, 12                              25
* Ein head ist eine Referenz auf ein commit
       object

     * By default gibts in jedem Repository einen
       head der master genannt wird

     * Ein Repository kann beliebig viele heads
       haben

   * Der aktuell aktive head wird HEAD genannt

Thursday, March 1, 12                               26
Ok wir haben was zum spielen!



                  git   init
                  git   commit
                  git   log
                  git   status
                  git   diff
                  git   mv / git rm


Thursday, March 1, 12                         27
Ok wir haben was zum spielen!




Thursday, March 1, 12                         28
Ein branch ist eine Referenz
     auf ein commit object

    Beispiel:




Thursday, March 1, 12               29
git branch
  git branch [new-head-name] [reference-to-(B)]
  git checkout




Thursday, March 1, 12                             30
Thursday, March 1, 12   31
HIN
        * Branches zum implementieren           TS
          neuer Features

        * Branches beinhalten “halbfertiges”

        * aus master wird released (main/trunk)

        * Jeder entwickler branched, commits
          können IMMER gemacht werden, egal
          ob fertig oder nicht

        * Commits sind billig, es gibt KEINEN
          Grund nicht zu commiten!
Thursday, March 1, 12                                32
Thursday, March 1, 12   33
del
                                    ab   etin
                                       ran    g
             git branch -d [head]          ch




Thursday, March 1, 12                             34
me
                                      pat  rge
 Merge hat meistens zwei Gründe:         ter
                                             n
     * Features vom branch in den master
       zum release ziehen

    * Bugfixes und features aus dem master in
      euren feature-branch ziehen um commit
      Konflikte zu reduzieren und Bugs gefixt
      zu bekommen

    * Nachteil von dem da oben: Eure feature
      branch hat nen haufen merge commits

    * Hier kann rebasing ins Spiel kommen. Hat
      aber auch keinen Kuchen :)
Thursday, March 1, 12                            35
Thursday, March 1, 12   36
Thursday, March 1, 12   37
com
                                         ma
                                           nd
                                             s



              git reset --hard HEAD
              git clean -fdx
              git format-patch -M -C [head]




Thursday, March 1, 12                            38
Inf
                                               os
       * SmartGit - Non-Plus-Ultra

       * gitk


       * Charles Duan, Understanding Git
         Conceptually

     * Versionskontrolle mit Git
       von Jon Loeliger aus dem Verlag O’Reilly

Thursday, March 1, 12                               39

Weitere ähnliche Inhalte

Mehr von Ronny

OSMC2010 Open NMS Kickstart
OSMC2010 Open NMS KickstartOSMC2010 Open NMS Kickstart
OSMC2010 Open NMS KickstartRonny
 
Strategies in remote execution with OpenNMS
Strategies in remote execution with OpenNMSStrategies in remote execution with OpenNMS
Strategies in remote execution with OpenNMSRonny
 
OpenNMS meets Jasper Reports again
OpenNMS meets Jasper Reports againOpenNMS meets Jasper Reports again
OpenNMS meets Jasper Reports againRonny
 
OpenNMS Reporting Cheat Sheet
OpenNMS Reporting Cheat SheetOpenNMS Reporting Cheat Sheet
OpenNMS Reporting Cheat SheetRonny
 
Jasper Reporting in Webapplications
Jasper Reporting in WebapplicationsJasper Reporting in Webapplications
Jasper Reporting in WebapplicationsRonny
 
OpenNMS Reporting - Enhancement
OpenNMS Reporting - EnhancementOpenNMS Reporting - Enhancement
OpenNMS Reporting - EnhancementRonny
 

Mehr von Ronny (6)

OSMC2010 Open NMS Kickstart
OSMC2010 Open NMS KickstartOSMC2010 Open NMS Kickstart
OSMC2010 Open NMS Kickstart
 
Strategies in remote execution with OpenNMS
Strategies in remote execution with OpenNMSStrategies in remote execution with OpenNMS
Strategies in remote execution with OpenNMS
 
OpenNMS meets Jasper Reports again
OpenNMS meets Jasper Reports againOpenNMS meets Jasper Reports again
OpenNMS meets Jasper Reports again
 
OpenNMS Reporting Cheat Sheet
OpenNMS Reporting Cheat SheetOpenNMS Reporting Cheat Sheet
OpenNMS Reporting Cheat Sheet
 
Jasper Reporting in Webapplications
Jasper Reporting in WebapplicationsJasper Reporting in Webapplications
Jasper Reporting in Webapplications
 
OpenNMS Reporting - Enhancement
OpenNMS Reporting - EnhancementOpenNMS Reporting - Enhancement
OpenNMS Reporting - Enhancement
 

Minimum introduction to Git

  • 3. F*** yourself TG I w i th Thursday, March 1, 12 3
  • 4. N SFW Disclaimer Eigentlich hab ich überhaupt keine Ahnung von dem was ich hier gerade rede. Sei es drum, ich wurde durch die Mitarbeit in einem Open Source Projekt dazu gezwungen, git zu verwenden. *sigh* Die Welt war doch so schön mit SVN! Außerdem ist das eine gute Gelegenheit diese ganzen blöden Animationen hier mal auszuprobieren. Die Präsentation steckt voller Copyright violations. Ich bin ein Opfer der Google Bildersuche. Thursday, March 1, 12 4
  • 5. Versionskontrolle ist was für Hustensaftlutscher! SVN vs. GIT GIT ist total einfa Schei sse! Ohne goog le gehts net?! Thursday, March 1, 12 5
  • 6. Backups?! Weichei Thursday, March 1, 12 6
  • 7. Protoko llieren hi vieren Arc Wie derhers tellen Thursday, March 1, 12 7
  • 8. Pro Ar tok chi ollier Wi vie en ede ren rhe rst elle n Thursday, March 1, 12 8
  • 9. Klingt gut. Was nehm ich? Thursday, March 1, 12 9
  • 10. SVN vs. GIT Thursday, March 1, 12 10
  • 11. Su bve zen rsi tra on l Thursday, March 1, 12 11
  • 12. Git dez ent ral Thursday, March 1, 12 12
  • 14. SV N * Wird sehr gut von anderen Tools unterstützt * Lässt sich “relativ” leicht verstehen * Ihr könnt zentrales Rechtemanagement betreiben Thursday, March 1, 12 14
  • 15. SV N * Langsam * Historie ist dumm * Branching ist ziemlich anstrengend * Ohne Server unbrauchbar Thursday, March 1, 12 15
  • 16. GIT * Sau schnell * Merge ist einfach * Branch, Branch, Branch ... * Intelligente Historie * Geht auch ohne Server Thursday, March 1, 12 16
  • 17. GIT * Steiniger Einstieg * Think dif <!-- © violation here! --> Paradigmenwechsel * Linux/Unix simpel, <omg>Windows</omg> * Rechtemanagement Thursday, March 1, 12 17
  • 20. Beg rif fe Thursday, March 1, 12 20
  • 21. * Git verwaltet eine Sammlung von Dateien und deren Änderungen über die Zeit * All diese Informationen werden in der Datenstruktur Repository gespeichert Thursday, March 1, 12 21
  • 22. Wie kommt man da hin? * Ihr braucht git * Nen bissle Grundkonfiguration git config --global user.name "FirstName LastName" git config --global user.email "user@example.com" git config --global color.branch "auto" git config --global color.status "auto" git config --global color.diff "auto" cd PATH/TO/MY/AWESOME/PROJECT git init Thursday, March 1, 12 22
  • 23. * Eine Sammlung von Dateien, die einen Projektstand wiederspiegeln * Die Referenz auf sein parent commit object! * SHA1 name, 40 Zeichen identifizieren das commit object. Erzeugter Hash von relevanten Teilen des commits -> identische commits haben den gleichen Namen Thursday, March 1, 12 23
  • 24. Was bedeutet das? Thursday, March 1, 12 24
  • 25. DIE git IDEE?! Versionskontrolle ist die Manipulation des Graphen mit all seinen commits. ihr Abf ragen o der Ä nderungen macht, W e nn n es euch helfen da s im Hinterkopf zu kan behalten. Thursday, March 1, 12 25
  • 26. * Ein head ist eine Referenz auf ein commit object * By default gibts in jedem Repository einen head der master genannt wird * Ein Repository kann beliebig viele heads haben * Der aktuell aktive head wird HEAD genannt Thursday, March 1, 12 26
  • 27. Ok wir haben was zum spielen! git init git commit git log git status git diff git mv / git rm Thursday, March 1, 12 27
  • 28. Ok wir haben was zum spielen! Thursday, March 1, 12 28
  • 29. Ein branch ist eine Referenz auf ein commit object Beispiel: Thursday, March 1, 12 29
  • 30. git branch git branch [new-head-name] [reference-to-(B)] git checkout Thursday, March 1, 12 30
  • 32. HIN * Branches zum implementieren TS neuer Features * Branches beinhalten “halbfertiges” * aus master wird released (main/trunk) * Jeder entwickler branched, commits können IMMER gemacht werden, egal ob fertig oder nicht * Commits sind billig, es gibt KEINEN Grund nicht zu commiten! Thursday, March 1, 12 32
  • 34. del ab etin ran g git branch -d [head] ch Thursday, March 1, 12 34
  • 35. me pat rge Merge hat meistens zwei Gründe: ter n * Features vom branch in den master zum release ziehen * Bugfixes und features aus dem master in euren feature-branch ziehen um commit Konflikte zu reduzieren und Bugs gefixt zu bekommen * Nachteil von dem da oben: Eure feature branch hat nen haufen merge commits * Hier kann rebasing ins Spiel kommen. Hat aber auch keinen Kuchen :) Thursday, March 1, 12 35
  • 38. com ma nd s git reset --hard HEAD git clean -fdx git format-patch -M -C [head] Thursday, March 1, 12 38
  • 39. Inf os * SmartGit - Non-Plus-Ultra * gitk * Charles Duan, Understanding Git Conceptually * Versionskontrolle mit Git von Jon Loeliger aus dem Verlag O’Reilly Thursday, March 1, 12 39