SlideShare une entreprise Scribd logo
1  sur  78
Télécharger pour lire hors ligne
Einführung in Git




                     René Bruns




                       GameCamp Munich




Donnerstag, 14. Juli 2011
Über mich



                            • René Bruns
                            • Entwickler seit 2001
                            • Seit 2009 bei Travian Games
                            • Seit 2011 Technical Director
                             Games Development




Donnerstag, 14. Juli 2011
Über Travian Games


                                  • Hauptsitz in München
                                  • 2005 gegründet
                                  • >200 Mitarbeiter
                                  • >100 Mio. Registrierungen
                                  • 52 Länderversionen von Travian
                                  • Travian, Travianer, Wewaii,
                                   Imperion, goalunited, Ballersunited,
                                   Eredan, Miramagia, Remanum,
                                   Battlemons


Donnerstag, 14. Juli 2011
Agenda




                            Historisches


                            Git Grundlagen


                            Coole Tools


                            Mehr Infos




Donnerstag, 14. Juli 2011
Umfrage




                                    Wer hat schon mit einem
                            Sourcecodeverwaltungssystem gearbeitet?




Donnerstag, 14. Juli 2011
Umfrage




Donnerstag, 14. Juli 2011
Umfrage




             Subversion?




Donnerstag, 14. Juli 2011
Umfrage




             Subversion?




                  CVS?




Donnerstag, 14. Juli 2011
Umfrage




             Subversion?




                  CVS?
                            Git?




Donnerstag, 14. Juli 2011
Umfrage




             Subversion?




                  CVS?
                                         Git?

                            Mercurial?


Donnerstag, 14. Juli 2011
Umfrage




             Subversion?
                                         Bazaar?



                  CVS?
                                                   Git?

                            Mercurial?


Donnerstag, 14. Juli 2011
Umfrage



                                                          Perforce?
             Subversion?
                                         Bazaar?



                  CVS?
                                                   Git?

                            Mercurial?


Donnerstag, 14. Juli 2011
Umfrage



                                                          Perforce?
             Subversion?
                                         Bazaar?



                  CVS?
                                                   Git?

                            Mercurial?
                                           Visual SourceSafe?


Donnerstag, 14. Juli 2011
Umfrage



                                                           Perforce?
             Subversion?
                                          Bazaar?

                                         CuPiDo?

                  CVS?
                                                    Git?

                            Mercurial?
                                            Visual SourceSafe?


Donnerstag, 14. Juli 2011
Umfrage



                                                          Perforce?
             Subversion?
                                         Bazaar?

                              Copy und Paste in Datumsordner

                  CVS?
                                                   Git?

                            Mercurial?
                                            Visual SourceSafe?


Donnerstag, 14. Juli 2011
Historisches


                            • Entwickelt 2005
                            • Ablöse von Bitkeeper als
                             Versionsverwaltung des Linux-Kernels
                            • Wird eingesetzt von Git, Samba,
                             X.org, GNOME, Ruby on Rails, VLC,
                             Wine, Perl 5, phpBB, ...




Donnerstag, 14. Juli 2011
Legende




                            1



         Ich bin ein Commit



Donnerstag, 14. Juli 2011
Legende




                            1        2



         Ich bin ein Commit     Ich baue auf Commit 1 auf



Donnerstag, 14. Juli 2011
Legende




             Branch
                                A       B




                            1       2


Donnerstag, 14. Juli 2011
Revisions vs. Hash




          Revisions

                                  4711




          Hash



Donnerstag, 14. Juli 2011
Revisions vs. Hash


                                         4712


          Revisions

                                  4711




          Hash



Donnerstag, 14. Juli 2011
Revisions vs. Hash


                                         4712   4713


          Revisions

                                  4711




          Hash



Donnerstag, 14. Juli 2011
Revisions vs. Hash


                                         4712          4713


          Revisions

                                  4711          4714




          Hash



Donnerstag, 14. Juli 2011
Revisions vs. Hash


                                             4712          4713


          Revisions

                                  4711              4714




          Hash
                                  54ed65f2
                                  01b42f79
                                  d83043e7
                                  ac00fee1
                                  cb1975c9


Donnerstag, 14. Juli 2011
Revisions vs. Hash


                                             4712             4713


          Revisions

                                  4711                 4714




                                             f81c259



          Hash
                                  54ed65f2
                                  01b42f79
                                  d83043e7
                                  ac00fee1
                                  cb1975c9


Donnerstag, 14. Juli 2011
Revisions vs. Hash


                                             4712             4713


          Revisions

                                  4711                 4714




                                             f81c259          dd146ac



          Hash
                                  54ed65f2
                                  01b42f79
                                  d83043e7
                                  ac00fee1
                                  cb1975c9


Donnerstag, 14. Juli 2011
Revisions vs. Hash


                                             4712                4713


          Revisions

                                  4711                 4714




                                             f81c259             dd146ac



          Hash
                                  54ed65f2
                                  01b42f79
                                  d83043e7             e0a5b1a
                                  ac00fee1
                                  cb1975c9


Donnerstag, 14. Juli 2011
Zentrales System (bspw. SVN)


      Branch 1


     Trunk
                                            Server
      Branch 2




      Working Copy                          Client


Donnerstag, 14. Juli 2011
Dezentrales System


      Branch 1


     Trunk
                                  Server


      Branch 1


     Trunk
                                  Client
      Branch 2

      Working Copy
Donnerstag, 14. Juli 2011
Dezentrales System


      Branch 1


     Trunk
                                            Server




                                  Clients
Donnerstag, 14. Juli 2011
Dezentrales System


      Branch 1


     Trunk
                                            Server




                                  Clients
Donnerstag, 14. Juli 2011
Dezentrales System


      Branch 1


     Trunk
                                            Server




                                  Clients
Donnerstag, 14. Juli 2011
Dezentrales System


      Branch 1


     Trunk
                                            Server




                                  Clients
Donnerstag, 14. Juli 2011
Dezentrales System




                                  Clients
Donnerstag, 14. Juli 2011
Die vier Ebenen von Git




Donnerstag, 14. Juli 2011
Die vier Ebenen von Git




                                   Working Directory

Donnerstag, 14. Juli 2011
Die vier Ebenen von Git




                                       Staging



                                   Working Directory

Donnerstag, 14. Juli 2011
Die vier Ebenen von Git




                                       Repository



                                        Staging



                                   Working Directory

Donnerstag, 14. Juli 2011
Die vier Ebenen von Git




                                  Remote Repository



                                       Repository



                                        Staging



                                   Working Directory

Donnerstag, 14. Juli 2011
Das "Pointer-Prinzip"




                              A          B




                    1                2



Donnerstag, 14. Juli 2011
Das "Pointer-Prinzip"




                              A          B




                                             Master
                    1                2



Donnerstag, 14. Juli 2011
Das "Pointer-Prinzip"




                                                      Branch
                              A          B




                                             Master
                    1                2



Donnerstag, 14. Juli 2011
Das "Pointer-Prinzip"




                                                      Branch
                              A          B




                                             Master
                    1                2
                                             Head


Donnerstag, 14. Juli 2011
Das "Pointer-Prinzip"




                                                         Branch
                               A            B




                                                Master
                    1                   2
                                                Head

                        remote/master
Donnerstag, 14. Juli 2011
Typischer Workflow




                            Repository erstellen

                                 $ mkdir gitrepo
                                 $ cd gitrepo
                                 $ git init




Donnerstag, 14. Juli 2011
Typischer Workflow




                                  Arbeiten...

                             $ vi index.php
                             [tipp...tipp...tipp...]


                                         1


Donnerstag, 14. Juli 2011
Typischer Workflow




                            Zu Commit hinzufügen ("stagen")

                                  $ git add index.php



                                           1


Donnerstag, 14. Juli 2011
Typischer Workflow




                                    Commiten

                            $ git commit -m "Testcommit"



                                         1


Donnerstag, 14. Juli 2011
Typischer Workflow




                            Ändern und direkt commiten

                                     $ vi index.php



                                 1                    2


Donnerstag, 14. Juli 2011
Typischer Workflow




                            Ändern und direkt commiten

                            $ vi index.php
                            $ git commit -a -m "Nochmal"


                                 1               2


Donnerstag, 14. Juli 2011
Schnelles Branchen und Mergen



                                  Branch erstellen

                            $ git checkout -b neuerbranch


                                                                          ch   *
                                                                  b   ran
                                                            ne uer




                                                                Head
                                  1               2
                                                             Master

Donnerstag, 14. Juli 2011
Schnelles Branchen und Mergen



                                Im Branch arbeiten
                                  $ vi index.php




                                             Head




                                                           r
                                                        te
                                                                   h*
                                                    as
                                                                  nc
                                                              ra
                                                             rb
                                                    M
                                                         ue
                                                        ne
                            1                2                          A

Donnerstag, 14. Juli 2011
Schnelles Branchen und Mergen



                                   Im Branch arbeiten
                            $ vi index.php
                            $ commit -am "Neues Feature"




                                                                   neuerbranch*
                                                            Head
                                                        r
                                                     te
                                                 as
                                                 M
                            1                2               A

Donnerstag, 14. Juli 2011
Schnelles Branchen und Mergen

                                    Branch wechseln




                                                               Master*
                                                                         Head
                            $ git checkout master
                            $ vi index.php
                            $ commit -am "Neues Feature"

                                                                  3


                            1                2                   A
                                                 neuerbranch

Donnerstag, 14. Juli 2011
Schnelles Branchen und Mergen




                                                                Master*
                                 Mergen (True Merge)




                                                                          Head
                                $ git merge neuerbranch




                                                 3                   4

                            1         2          A
                                                          neuerbranch



Donnerstag, 14. Juli 2011
Schnelles Branchen und Mergen



                                           Rebase
                                $ git checkout neuerbranch




                                                    3          Master
                                                               Head
                            1          2            A        neuerbranch*




Donnerstag, 14. Juli 2011
Schnelles Branchen und Mergen



                                        Rebase
                                $ git rebase master




                                                             r
                                                          te
                                                      as
                                                      M


                                                                 Head
                                                                        neuerbranch*
                                                 3

                            1       2                             A‘

Donnerstag, 14. Juli 2011
Schnelles Branchen und Mergen



                                   Fast-Forward Merge
                                $ git checkout master
                                $ git merge neuerbranch




                                                           Head
                                                                  neuerbranch
                                                    3

                            1           2        Master*    A‘

Donnerstag, 14. Juli 2011
Coole Tools



                            Bisect




Donnerstag, 14. Juli 2011
Coole Tools



                                   Bisect



       OK                            ?              X



    Good                                            Bad
                            $ git bisect start
                            $ git bisect good 1
                            $ git bisect bad HEAD
Donnerstag, 14. Juli 2011
Coole Tools



                                       Bisect



       OK                   OK   OK    OK             ?   X



    Good                              Good                Bad

                                  $ git bisect good

Donnerstag, 14. Juli 2011
Coole Tools



                                       Bisect



       OK                   OK   OK     OK      ?    X     X



    Good                              Good           Bad   Bad

                                  $ git bisect bad

Donnerstag, 14. Juli 2011
Coole Tools



                                       Bisect



       OK                   OK   OK    OK       OK     !    X



    Good                              Good   Good     Bad   Bad

                                  $ git bisect good

Donnerstag, 14. Juli 2011
Coole Tools



                              Bisect


                            Live Demo




Donnerstag, 14. Juli 2011
Coole Tools



                                Interactive Rebasing



          1                 2    3      4     5        6   7




Donnerstag, 14. Juli 2011
Coole Tools



                                Interactive Rebasing
                                       Edit 6

          1                 2    3      4       5      6'   7'




Donnerstag, 14. Juli 2011
Coole Tools



                                Interactive Rebasing
                                      Squash 2&3

                            1   2+3      4         5   6'   7'




Donnerstag, 14. Juli 2011
Coole Tools



                            Interactive Rebasing
                                  Löschen 4

                            1      2+3    5"       6"   7'




Donnerstag, 14. Juli 2011
Coole Tools



                            Interactive Rebasing


                                Live Demo




Donnerstag, 14. Juli 2011
Coole Tools



                            Weitere Coole Tools




Donnerstag, 14. Juli 2011
Coole Tools



                            Weitere Coole Tools
             •Commits korrigieren ($ git commit --amend)




Donnerstag, 14. Juli 2011
Coole Tools



                            Weitere Coole Tools
             •Commits korrigieren ($ git commit --amend)
             •Änderungen zwischenspeichern ($ git stash *)




Donnerstag, 14. Juli 2011
Coole Tools



                            Weitere Coole Tools
             •Commits korrigieren ($ git commit --amend)
             •Änderungen zwischenspeichern ($ git stash *)
             •Cherry-Picking ($ git cherry-pick)




Donnerstag, 14. Juli 2011
Coole Tools



                            Weitere Coole Tools
             •Commits korrigieren ($ git commit --amend)
             •Änderungen zwischenspeichern ($ git stash *)
             •Cherry-Picking ($ git cherry-pick)
             •git-svn-bridge ($ git svn *)




Donnerstag, 14. Juli 2011
Coole Tools



                            Weitere Coole Tools
             •Commits korrigieren ($ git commit --amend)
             •Änderungen zwischenspeichern ($ git stash *)
             •Cherry-Picking ($ git cherry-pick)
             •git-svn-bridge ($ git svn *)
             •Git Gui ($ git gui *)




Donnerstag, 14. Juli 2011
Coole Tools



                            Weitere Coole Tools
             •Commits korrigieren ($ git commit --amend)
             •Änderungen zwischenspeichern ($ git stash *)
             •Cherry-Picking ($ git cherry-pick)
             •git-svn-bridge ($ git svn *)
             •Git Gui ($ git gui *)
             •Gitk ($ gitk)



Donnerstag, 14. Juli 2011
Lesezeichen - Links und so



     •Git-Homepage: http://git-scm.com/
     •Pro Git Book + Free Ebook: http://progit.org/
     •github: https://github.com/
     •Git-Wikipedia-Artikel: http://de.wikipedia.org/wiki/Git




Donnerstag, 14. Juli 2011
Vielen Dank!




         • Feedback? Fragen?
         • Email: r.bruns@traviangames.com
         • Twitter: @renebruns




Donnerstag, 14. Juli 2011

Contenu connexe

En vedette

Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeAndreas Schreiber
 
Einsatz von Git im Unternehmen
Einsatz von Git im UnternehmenEinsatz von Git im Unternehmen
Einsatz von Git im Unternehmenoose
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische EinführungMarcel Eichner
 
The development workflow of git github for beginners
The development workflow of git github for beginnersThe development workflow of git github for beginners
The development workflow of git github for beginnersGunjan Patel
 
Git workflow step by step
Git workflow step by stepGit workflow step by step
Git workflow step by stepBinh Quan Duc
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentLemi Orhan Ergin
 
Subversion -> SVK -> Git
Subversion -> SVK -> GitSubversion -> SVK -> Git
Subversion -> SVK -> GitKota Sakoda
 
Zur Genese offener Werke: Rotkäppchen 2.0, Medienwandel und schriftliche Münd...
Zur Genese offener Werke: Rotkäppchen 2.0, Medienwandel und schriftliche Münd...Zur Genese offener Werke: Rotkäppchen 2.0, Medienwandel und schriftliche Münd...
Zur Genese offener Werke: Rotkäppchen 2.0, Medienwandel und schriftliche Münd...Sabria David
 
Presentacion in cresendo
Presentacion in cresendoPresentacion in cresendo
Presentacion in cresendopiccoloskater
 
Kebab Connection
Kebab ConnectionKebab Connection
Kebab Connectionmapauro
 
Meinverein.de Werbemöglichkeiten
Meinverein.de WerbemöglichkeitenMeinverein.de Werbemöglichkeiten
Meinverein.de WerbemöglichkeitenClubPort GmbH
 
Social Media 2.5 Conference | Social Marketing: Optimierung des Share of Wallet
Social Media 2.5 Conference | Social Marketing: Optimierung des Share of WalletSocial Media 2.5 Conference | Social Marketing: Optimierung des Share of Wallet
Social Media 2.5 Conference | Social Marketing: Optimierung des Share of WalletSocial Media Schweiz
 

En vedette (19)

Gitlab
GitlabGitlab
Gitlab
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle Versionsmanagementsysteme
 
Einsatz von Git im Unternehmen
Einsatz von Git im UnternehmenEinsatz von Git im Unternehmen
Einsatz von Git im Unternehmen
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische Einführung
 
The development workflow of git github for beginners
The development workflow of git github for beginnersThe development workflow of git github for beginners
The development workflow of git github for beginners
 
Git workflow step by step
Git workflow step by stepGit workflow step by step
Git workflow step by step
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
 
Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software Development
 
Subversion -> SVK -> Git
Subversion -> SVK -> GitSubversion -> SVK -> Git
Subversion -> SVK -> Git
 
Geschaeftspraesentation
GeschaeftspraesentationGeschaeftspraesentation
Geschaeftspraesentation
 
El cpu
El cpuEl cpu
El cpu
 
Best Of Ksp
Best Of KspBest Of Ksp
Best Of Ksp
 
Zur Genese offener Werke: Rotkäppchen 2.0, Medienwandel und schriftliche Münd...
Zur Genese offener Werke: Rotkäppchen 2.0, Medienwandel und schriftliche Münd...Zur Genese offener Werke: Rotkäppchen 2.0, Medienwandel und schriftliche Münd...
Zur Genese offener Werke: Rotkäppchen 2.0, Medienwandel und schriftliche Münd...
 
Presentacion in cresendo
Presentacion in cresendoPresentacion in cresendo
Presentacion in cresendo
 
Kebab Connection
Kebab ConnectionKebab Connection
Kebab Connection
 
Meinverein.de Werbemöglichkeiten
Meinverein.de WerbemöglichkeitenMeinverein.de Werbemöglichkeiten
Meinverein.de Werbemöglichkeiten
 
Social Media 2.5 Conference | Social Marketing: Optimierung des Share of Wallet
Social Media 2.5 Conference | Social Marketing: Optimierung des Share of WalletSocial Media 2.5 Conference | Social Marketing: Optimierung des Share of Wallet
Social Media 2.5 Conference | Social Marketing: Optimierung des Share of Wallet
 
Informatica memorias
Informatica memoriasInformatica memorias
Informatica memorias
 

Einführung in Git - GameCamp Munich 2011

  • 1. Einführung in Git René Bruns GameCamp Munich Donnerstag, 14. Juli 2011
  • 2. Über mich • René Bruns • Entwickler seit 2001 • Seit 2009 bei Travian Games • Seit 2011 Technical Director Games Development Donnerstag, 14. Juli 2011
  • 3. Über Travian Games • Hauptsitz in München • 2005 gegründet • >200 Mitarbeiter • >100 Mio. Registrierungen • 52 Länderversionen von Travian • Travian, Travianer, Wewaii, Imperion, goalunited, Ballersunited, Eredan, Miramagia, Remanum, Battlemons Donnerstag, 14. Juli 2011
  • 4. Agenda Historisches Git Grundlagen Coole Tools Mehr Infos Donnerstag, 14. Juli 2011
  • 5. Umfrage Wer hat schon mit einem Sourcecodeverwaltungssystem gearbeitet? Donnerstag, 14. Juli 2011
  • 7. Umfrage Subversion? Donnerstag, 14. Juli 2011
  • 8. Umfrage Subversion? CVS? Donnerstag, 14. Juli 2011
  • 9. Umfrage Subversion? CVS? Git? Donnerstag, 14. Juli 2011
  • 10. Umfrage Subversion? CVS? Git? Mercurial? Donnerstag, 14. Juli 2011
  • 11. Umfrage Subversion? Bazaar? CVS? Git? Mercurial? Donnerstag, 14. Juli 2011
  • 12. Umfrage Perforce? Subversion? Bazaar? CVS? Git? Mercurial? Donnerstag, 14. Juli 2011
  • 13. Umfrage Perforce? Subversion? Bazaar? CVS? Git? Mercurial? Visual SourceSafe? Donnerstag, 14. Juli 2011
  • 14. Umfrage Perforce? Subversion? Bazaar? CuPiDo? CVS? Git? Mercurial? Visual SourceSafe? Donnerstag, 14. Juli 2011
  • 15. Umfrage Perforce? Subversion? Bazaar? Copy und Paste in Datumsordner CVS? Git? Mercurial? Visual SourceSafe? Donnerstag, 14. Juli 2011
  • 16. Historisches • Entwickelt 2005 • Ablöse von Bitkeeper als Versionsverwaltung des Linux-Kernels • Wird eingesetzt von Git, Samba, X.org, GNOME, Ruby on Rails, VLC, Wine, Perl 5, phpBB, ... Donnerstag, 14. Juli 2011
  • 17. Legende 1 Ich bin ein Commit Donnerstag, 14. Juli 2011
  • 18. Legende 1 2 Ich bin ein Commit Ich baue auf Commit 1 auf Donnerstag, 14. Juli 2011
  • 19. Legende Branch A B 1 2 Donnerstag, 14. Juli 2011
  • 20. Revisions vs. Hash Revisions 4711 Hash Donnerstag, 14. Juli 2011
  • 21. Revisions vs. Hash 4712 Revisions 4711 Hash Donnerstag, 14. Juli 2011
  • 22. Revisions vs. Hash 4712 4713 Revisions 4711 Hash Donnerstag, 14. Juli 2011
  • 23. Revisions vs. Hash 4712 4713 Revisions 4711 4714 Hash Donnerstag, 14. Juli 2011
  • 24. Revisions vs. Hash 4712 4713 Revisions 4711 4714 Hash 54ed65f2 01b42f79 d83043e7 ac00fee1 cb1975c9 Donnerstag, 14. Juli 2011
  • 25. Revisions vs. Hash 4712 4713 Revisions 4711 4714 f81c259 Hash 54ed65f2 01b42f79 d83043e7 ac00fee1 cb1975c9 Donnerstag, 14. Juli 2011
  • 26. Revisions vs. Hash 4712 4713 Revisions 4711 4714 f81c259 dd146ac Hash 54ed65f2 01b42f79 d83043e7 ac00fee1 cb1975c9 Donnerstag, 14. Juli 2011
  • 27. Revisions vs. Hash 4712 4713 Revisions 4711 4714 f81c259 dd146ac Hash 54ed65f2 01b42f79 d83043e7 e0a5b1a ac00fee1 cb1975c9 Donnerstag, 14. Juli 2011
  • 28. Zentrales System (bspw. SVN) Branch 1 Trunk Server Branch 2 Working Copy Client Donnerstag, 14. Juli 2011
  • 29. Dezentrales System Branch 1 Trunk Server Branch 1 Trunk Client Branch 2 Working Copy Donnerstag, 14. Juli 2011
  • 30. Dezentrales System Branch 1 Trunk Server Clients Donnerstag, 14. Juli 2011
  • 31. Dezentrales System Branch 1 Trunk Server Clients Donnerstag, 14. Juli 2011
  • 32. Dezentrales System Branch 1 Trunk Server Clients Donnerstag, 14. Juli 2011
  • 33. Dezentrales System Branch 1 Trunk Server Clients Donnerstag, 14. Juli 2011
  • 34. Dezentrales System Clients Donnerstag, 14. Juli 2011
  • 35. Die vier Ebenen von Git Donnerstag, 14. Juli 2011
  • 36. Die vier Ebenen von Git Working Directory Donnerstag, 14. Juli 2011
  • 37. Die vier Ebenen von Git Staging Working Directory Donnerstag, 14. Juli 2011
  • 38. Die vier Ebenen von Git Repository Staging Working Directory Donnerstag, 14. Juli 2011
  • 39. Die vier Ebenen von Git Remote Repository Repository Staging Working Directory Donnerstag, 14. Juli 2011
  • 40. Das "Pointer-Prinzip" A B 1 2 Donnerstag, 14. Juli 2011
  • 41. Das "Pointer-Prinzip" A B Master 1 2 Donnerstag, 14. Juli 2011
  • 42. Das "Pointer-Prinzip" Branch A B Master 1 2 Donnerstag, 14. Juli 2011
  • 43. Das "Pointer-Prinzip" Branch A B Master 1 2 Head Donnerstag, 14. Juli 2011
  • 44. Das "Pointer-Prinzip" Branch A B Master 1 2 Head remote/master Donnerstag, 14. Juli 2011
  • 45. Typischer Workflow Repository erstellen $ mkdir gitrepo $ cd gitrepo $ git init Donnerstag, 14. Juli 2011
  • 46. Typischer Workflow Arbeiten... $ vi index.php [tipp...tipp...tipp...] 1 Donnerstag, 14. Juli 2011
  • 47. Typischer Workflow Zu Commit hinzufügen ("stagen") $ git add index.php 1 Donnerstag, 14. Juli 2011
  • 48. Typischer Workflow Commiten $ git commit -m "Testcommit" 1 Donnerstag, 14. Juli 2011
  • 49. Typischer Workflow Ändern und direkt commiten $ vi index.php 1 2 Donnerstag, 14. Juli 2011
  • 50. Typischer Workflow Ändern und direkt commiten $ vi index.php $ git commit -a -m "Nochmal" 1 2 Donnerstag, 14. Juli 2011
  • 51. Schnelles Branchen und Mergen Branch erstellen $ git checkout -b neuerbranch ch * b ran ne uer Head 1 2 Master Donnerstag, 14. Juli 2011
  • 52. Schnelles Branchen und Mergen Im Branch arbeiten $ vi index.php Head r te h* as nc ra rb M ue ne 1 2 A Donnerstag, 14. Juli 2011
  • 53. Schnelles Branchen und Mergen Im Branch arbeiten $ vi index.php $ commit -am "Neues Feature" neuerbranch* Head r te as M 1 2 A Donnerstag, 14. Juli 2011
  • 54. Schnelles Branchen und Mergen Branch wechseln Master* Head $ git checkout master $ vi index.php $ commit -am "Neues Feature" 3 1 2 A neuerbranch Donnerstag, 14. Juli 2011
  • 55. Schnelles Branchen und Mergen Master* Mergen (True Merge) Head $ git merge neuerbranch 3 4 1 2 A neuerbranch Donnerstag, 14. Juli 2011
  • 56. Schnelles Branchen und Mergen Rebase $ git checkout neuerbranch 3 Master Head 1 2 A neuerbranch* Donnerstag, 14. Juli 2011
  • 57. Schnelles Branchen und Mergen Rebase $ git rebase master r te as M Head neuerbranch* 3 1 2 A‘ Donnerstag, 14. Juli 2011
  • 58. Schnelles Branchen und Mergen Fast-Forward Merge $ git checkout master $ git merge neuerbranch Head neuerbranch 3 1 2 Master* A‘ Donnerstag, 14. Juli 2011
  • 59. Coole Tools Bisect Donnerstag, 14. Juli 2011
  • 60. Coole Tools Bisect OK ? X Good Bad $ git bisect start $ git bisect good 1 $ git bisect bad HEAD Donnerstag, 14. Juli 2011
  • 61. Coole Tools Bisect OK OK OK OK ? X Good Good Bad $ git bisect good Donnerstag, 14. Juli 2011
  • 62. Coole Tools Bisect OK OK OK OK ? X X Good Good Bad Bad $ git bisect bad Donnerstag, 14. Juli 2011
  • 63. Coole Tools Bisect OK OK OK OK OK ! X Good Good Good Bad Bad $ git bisect good Donnerstag, 14. Juli 2011
  • 64. Coole Tools Bisect Live Demo Donnerstag, 14. Juli 2011
  • 65. Coole Tools Interactive Rebasing 1 2 3 4 5 6 7 Donnerstag, 14. Juli 2011
  • 66. Coole Tools Interactive Rebasing Edit 6 1 2 3 4 5 6' 7' Donnerstag, 14. Juli 2011
  • 67. Coole Tools Interactive Rebasing Squash 2&3 1 2+3 4 5 6' 7' Donnerstag, 14. Juli 2011
  • 68. Coole Tools Interactive Rebasing Löschen 4 1 2+3 5" 6" 7' Donnerstag, 14. Juli 2011
  • 69. Coole Tools Interactive Rebasing Live Demo Donnerstag, 14. Juli 2011
  • 70. Coole Tools Weitere Coole Tools Donnerstag, 14. Juli 2011
  • 71. Coole Tools Weitere Coole Tools •Commits korrigieren ($ git commit --amend) Donnerstag, 14. Juli 2011
  • 72. Coole Tools Weitere Coole Tools •Commits korrigieren ($ git commit --amend) •Änderungen zwischenspeichern ($ git stash *) Donnerstag, 14. Juli 2011
  • 73. Coole Tools Weitere Coole Tools •Commits korrigieren ($ git commit --amend) •Änderungen zwischenspeichern ($ git stash *) •Cherry-Picking ($ git cherry-pick) Donnerstag, 14. Juli 2011
  • 74. Coole Tools Weitere Coole Tools •Commits korrigieren ($ git commit --amend) •Änderungen zwischenspeichern ($ git stash *) •Cherry-Picking ($ git cherry-pick) •git-svn-bridge ($ git svn *) Donnerstag, 14. Juli 2011
  • 75. Coole Tools Weitere Coole Tools •Commits korrigieren ($ git commit --amend) •Änderungen zwischenspeichern ($ git stash *) •Cherry-Picking ($ git cherry-pick) •git-svn-bridge ($ git svn *) •Git Gui ($ git gui *) Donnerstag, 14. Juli 2011
  • 76. Coole Tools Weitere Coole Tools •Commits korrigieren ($ git commit --amend) •Änderungen zwischenspeichern ($ git stash *) •Cherry-Picking ($ git cherry-pick) •git-svn-bridge ($ git svn *) •Git Gui ($ git gui *) •Gitk ($ gitk) Donnerstag, 14. Juli 2011
  • 77. Lesezeichen - Links und so •Git-Homepage: http://git-scm.com/ •Pro Git Book + Free Ebook: http://progit.org/ •github: https://github.com/ •Git-Wikipedia-Artikel: http://de.wikipedia.org/wiki/Git Donnerstag, 14. Juli 2011
  • 78. Vielen Dank! • Feedback? Fragen? • Email: r.bruns@traviangames.com • Twitter: @renebruns Donnerstag, 14. Juli 2011