GoBack
Seite 1
Verteilte Versionsverwaltung
                  mit git
          als Ergänzung oder Ersatz für klassische Systeme wie Subv...
Verteilte
Versionsverwaltung
Historie
Vorteile
Nachteile

Git

Git praktisch

Diskussion/Fragen                           ...
Historie - lokale Versionkontrolle

Verteilte
Versionsverwaltung                s    Verzeichniskopien
Historie
Vorteile
N...
Historie - zentrale Systeme

Verteilte
Versionsverwaltung                s    CVS (basiert auf RCS)
Historie
Vorteile
Nach...
Historie - dezentrale Systeme

Verteilte
Versionsverwaltung                s    BitKeeper
Historie
Vorteile
Nachteile
    ...
Vorteile dezentraler SCM-Systeme

Verteilte
Versionsverwaltung                s    komplette lokale Historie
Historie
Vort...
Nachteile dezentraler SCM-Systeme

Verteilte
Versionsverwaltung                s    keine zentrale Kontrolle
Historie
Vort...
Verteilte
Versionsverwaltung

Git
Herkunft und
Verbreitung
Warum Git?
Verfügbarkeit
Toolunterstützung

Git praktisch      ...
Herkunft und Verbreitung

Verteilte
Versionsverwaltung                s    Ursprünglich von Linus Torvalds für die Entwick...
Warum Git?

Verteilte
Versionsverwaltung
                                  s    Umfangreiche Projektseite [1] und Dokument...
Verfügbarkeit

Verteilte
Versionsverwaltung
                            Verfügbarkeit:
Git
Herkunft und                   ...
Toolunterstützung

Verteilte
Versionsverwaltung
                                  s    TortoiseGit – Explorer-Erweiterung ...
Verteilte
Versionsverwaltung

Git

Git praktisch
Start mit Git
Repositories klonen
Branches
Merge
Tags
                   ...
Einrichtung, Erzeugen eines Repositories

Verteilte
Versionsverwaltung
                            Git für lokale Entwickl...
Repositories klonen

Verteilte
Versionsverwaltung
                            Repository über SSH klonen, damit wird die V...
Arbeiten mit Branches

Verteilte
Versionsverwaltung
                            Branches und Tags sind bei git anders als ...
Mergen von Änderungen, Aktualisierungen von
Branches

                            Änderungen aus einem Branch in den Haupt...
Tags

Verteilte
Versionsverwaltung
                            Ein Tag ist ein symbolischer Name für einen bestimmten
Git ...
Umgang mit History

Verteilte
Versionsverwaltung
                            Letzte Versionen anzeigen lassen:
Git        ...
Patches

Verteilte
Versionsverwaltung
                                  s    bei vielen OpenSource-Projekten werden Bugfixe...
SVN-Integration

Verteilte
Versionsverwaltung
                                  s    SVN-Repositories lassen sich über das...
Trac-Integration

Verteilte
Versionsverwaltung                s    das GitPlugin [5] für Trac erlaubt Git- statt
Git      ...
weitere Integrationen

Verteilte
Versionsverwaltung                s    Maven ØØÔ »»Ñ Ú Òº Ô                              ...
Referenzen

Verteilte
Versionsverwaltung          [1] ØØÔ »»ÛÛÛº                            Ø¹× Ñº ÓÑ»
Git

Git praktisch ...
Verteilte
Versionsverwaltung
                            Vielen Dank für Eure Aufmerksamkeit.
Git                         ...
Kontakt

Verteilte
Versionsverwaltung
                            Jan Dittberner
Git
                            Software ...
Nächste SlideShare
Wird geladen in …5
×

Verteilte Versionskontrolle mit Git

2.695 Aufrufe

Veröffentlicht am

Ein Vortrag zum Thema verteilte Versionskontrolle mit Git. Der Vortrag geht auf die Historie von Versionskontrollsystemen ein, stellt Vorteile von Git dar und bietet einige Beispiele und viele Links zu Git-Themen.

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.695
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
9
Aktionen
Geteilt
0
Downloads
13
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Verteilte Versionskontrolle mit Git

  1. 1. GoBack
  2. 2. Seite 1
  3. 3. Verteilte Versionsverwaltung mit git als Ergänzung oder Ersatz für klassische Systeme wie Subversion Jan Dittberner <jan.dittberner@communardo.de> 29.09.2009 ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 2
  4. 4. Verteilte Versionsverwaltung Historie Vorteile Nachteile Git Git praktisch Diskussion/Fragen Verteilte Versionsverwaltung ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 3
  5. 5. Historie - lokale Versionkontrolle Verteilte Versionsverwaltung s Verzeichniskopien Historie Vorteile Nachteile s RCS, SCCS Git s Microsoft VSS (über Fileshares netzfähig) Git praktisch Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 4
  6. 6. Historie - zentrale Systeme Verteilte Versionsverwaltung s CVS (basiert auf RCS) Historie Vorteile Nachteile s Subversion (SVN) Git s diverse andere (Perforce, CM-Synergy) Git praktisch Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 5
  7. 7. Historie - dezentrale Systeme Verteilte Versionsverwaltung s BitKeeper Historie Vorteile Nachteile s Mercurial (hg) Git s Bazaar (bzr) Git praktisch Diskussion/Fragen s Git s Darcs ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 6
  8. 8. Vorteile dezentraler SCM-Systeme Verteilte Versionsverwaltung s komplette lokale Historie Historie Vorteile Nachteile s Möglichkeit zur Offline-Arbeit Git s sehr schnell (Diff, Log, etc.) Git praktisch Diskussion/Fragen s verschiedene Workflows möglich s lokale Tests (z.B. für Featurebranches) beeinflussen andere Entwickler nicht s durch hohe Geschwindigkeit häufig kleinere Commits (bessere Nachvollziehbarkeit von Änderungen) s robustere Merging-Mechanismen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 7
  9. 9. Nachteile dezentraler SCM-Systeme Verteilte Versionsverwaltung s keine zentrale Kontrolle Historie Vorteile Nachteile s Umgang muss erlernt werden (Nachteil?) Git Git praktisch Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 8
  10. 10. Verteilte Versionsverwaltung Git Herkunft und Verbreitung Warum Git? Verfügbarkeit Toolunterstützung Git praktisch Git Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 9
  11. 11. Herkunft und Verbreitung Verteilte Versionsverwaltung s Ursprünglich von Linus Torvalds für die Entwicklung des Git Linux-Kernels als Ersatz für das kommerzielle Bitkeeper Herkunft und Verbreitung entwickelt. Warum Git? Verfügbarkeit Toolunterstützung s Einsatz inzwischen in vielen kleineren und auch extrem Git praktisch großen Projekten: Linux Kernel, Wine, Perl, GNOME, Diskussion/Fragen Qt, Ruby on Rails, Android, Fedora, Debian, X.org, VLC s wird inzwischen von einigen OpenSource-Hostern angeboten. SourceForge [3] und Github [4] sind die bekanntesten. ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 10
  12. 12. Warum Git? Verteilte Versionsverwaltung s Umfangreiche Projektseite [1] und Dokumentation [2]. Git Herkunft und s vollständige Dokumentation aller Unterbefehle Verbreitung Warum Git? Ø ÐÔ ×Ù ÓÑÑ Ò Verfügbarkeit Toolunterstützung Git praktisch s leichtgewichtige lokale Branches Diskussion/Fragen s sehr schnell s sehr kompakte lokale Repositories (teilweise kleiner als SVN-Checkout einer einzelnen Version) s erlaubt lokales Staging von Änderungen s unterstützt praktisch beliebige Workflows s siehe auch ØØÔ »» ºÛ Ý Ø × ØØ ÖØ Òܺ ÓÑ» ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 11
  13. 13. Verfügbarkeit Verteilte Versionsverwaltung Verfügbarkeit: Git Herkunft und s Download von der Git Projektseite [1] Verbreitung Warum Git? Verfügbarkeit s Debian Toolunterstützung ÔØ ØÙ Ò×Ø ÐÐ Ø ¹ ÓÖ Git praktisch Diskussion/Fragen s Windows x Cygwin ØØÔ »»ÛÛÛº Ý Û Òº ÓÑ» x msysGit ØØÔ »» Ó º ÓÓ Ð º ÓѻԻÑ×Ý× Ø» ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 12
  14. 14. Toolunterstützung Verteilte Versionsverwaltung s TortoiseGit – Explorer-Erweiterung ähnlich TortoiseSVN Git ØØÔ »» Ó º ÓÓ Ð º ÓѻԻØÓÖØÓ × Ø» Herkunft und Verbreitung Warum Git? s eGit – Eclipse Git Team Provider Verfügbarkeit ØØÔ »» غÓÖº Þ» ØÛ » Ð Ô× ÈÐÙ Ò Toolunterstützung Git praktisch s ggit (Gnome), gitk (Tcl/Tk), gitx (MacOS X) als Diskussion/Fragen Repository-Browser s viele weitere: ØØÔ »» غÓÖº Þ» ØÛ »ÁÒØ Ö × ÖÓÒØ Ò × Ò ÌÓÓÐ× ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 13
  15. 15. Verteilte Versionsverwaltung Git Git praktisch Start mit Git Repositories klonen Branches Merge Tags Git praktisch Umgang mit History Patches SVN-Integration Trac-Integration weitere Integrationen Referenzen Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 14
  16. 16. Einrichtung, Erzeugen eines Repositories Verteilte Versionsverwaltung Git für lokale Entwicklung einrichten: Git Ø ÓÒ ¹¹ ÐÓ Ð Ù× Ö º Ò Ñ Â Ò ØØ ÖÒ Ö Git praktisch Ø ÓÒ ¹¹ ÐÓ Ð Ù× Ö º Ñ Ð Start mit Git Òº ØØ ÖÒ Ö ÓÑÑÙÒ Ö Ó º Repositories klonen Ø ÓÒ ¹¹ ÐÓ Ð Ù× Ö º × Ò Ò Ý ¼Ü Branches Merge Tags Repository anlegen in einem beliebigen Verzeichnis: Umgang mit History Ø Ò Ø Patches SVN-Integration Trac-Integration Dateien hinzufügen und einchecken weitere Integrationen Ø º Referenzen Ø ÓÑÑ Ø ¹Ñ Ñ Ò Ö×Ø Ö ÓÑÑ Ø Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 15
  17. 17. Repositories klonen Verteilte Versionsverwaltung Repository über SSH klonen, damit wird die Verbindung zum Git Remote-Repository als Quelle vermerkt. Git praktisch Ø ÐÓÒ ×× »» Ù× Ö Ó×Ø » Ö ÔÓ Ö » ÔÖÓ Øº Ø Start mit Git Repositories klonen Zum Klonen erlaubt git verschiedene Mechanismen: ssh, Branches Merge git-eigenes Protokoll, rsync, http, https, Dateipfade. Bei http Tags und https ist nur ein lesender Zugriff möglich Umgang mit History Patches Folgendes Kommando holt neue Änderungen vom SVN-Integration Trac-Integration Remote-Repository in ein lokales Repository: weitere Integrationen Ø ÔÙÐÐ Referenzen Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 16
  18. 18. Arbeiten mit Branches Verteilte Versionsverwaltung Branches und Tags sind bei git anders als z.B. bei Subversion Git nicht einfach Kopien eines Arbeitsstandes. Git praktisch Branch erstellen: Start mit Git Repositories klonen Ø Ö Ò Ö Ò Ò Ñ Branches Merge Branch erstellen und auschecken: Tags Umgang mit History Ø ÓÙØ ¹ Ö Ò Ò Ñ Patches SVN-Integration Branches auflisten: Trac-Integration weitere Ø Ö Ò Integrationen Referenzen Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 17
  19. 19. Mergen von Änderungen, Aktualisierungen von Branches Änderungen aus einem Branch in den Hauptzweig Ñ ×Ø Ö Verteilte Versionsverwaltung Git (entspricht ØÖÙÒ bei SVN) übernehmen: Git praktisch Ø ÓÙØ Ñ ×Ø Ö Start mit Git Repositories klonen Ø Ñ Ö Ö Ò Branches Merge Um einen Branch, der z.B. für ein Feature angelegt wurde auf Tags den aktuellen Stand des Ñ ×Ø Ö-Branches zu bringen: Umgang mit History Patches Ø ÓÙØ Ö Ò SVN-Integration Ø Ö × Ñ ×Ø Ö Trac-Integration weitere Integrationen Bei vielen lokalen Commits kann es sinnvoll sein, diese Referenzen zusammenzuführen. Die letzten 3 Commits können z.B. so Diskussion/Fragen zusammengeführt werden: Ø Ö × ¹ À ¿ ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 18
  20. 20. Tags Verteilte Versionsverwaltung Ein Tag ist ein symbolischer Name für einen bestimmten Git Zustand eines Branches, also einen Commit. Tags können Git praktisch mit einer PGP-Signatur versehen werden. Start mit Git Tag erstellen mit Signatur: Repositories klonen Branches Ø Ø ¹× Ö Ð × ½ º½ Merge Tags Umgang mit History Patches SVN-Integration Trac-Integration weitere Integrationen Referenzen Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 19
  21. 21. Umgang mit History Verteilte Versionsverwaltung Letzte Versionen anzeigen lassen: Git Ø ÐÓ Git praktisch Start mit Git Unterschiede zum letzten commiteten Stand anzeigen Repositories klonen lassen: Branches Merge Ø Tags Umgang mit History Patches Besonders gut lässt sich die Versionshistorie z.B. mit SVN-Integration gitk/gitg/gitx visualisieren. Trac-Integration weitere Integrationen Referenzen Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 20
  22. 22. Patches Verteilte Versionsverwaltung s bei vielen OpenSource-Projekten werden Bugfixes in Git Form von Patches weitergegeben und ggf. in das Git praktisch Hauptrepository übernommen Start mit Git Repositories klonen s Git unterstützt dies mit den ÓÖÑ Ø¹Ô Ø und Ñ Branches Merge Unterkommandos Tags Umgang mit History Patches Patches für die letzten 3 Änderungen erzeugen: SVN-Integration Trac-Integration Ø ÓÖÑ Ø ¹ Ô Ø À ¿ºº À weitere Integrationen Referenzen Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 21
  23. 23. SVN-Integration Verteilte Versionsverwaltung s SVN-Repositories lassen sich über das Subkommando Git ×ÚÒ von Git nutzen1 Git praktisch Start mit Git s Vorteile: lokale Version der kompletten Historie, offline Repositories klonen arbeiten möglich, schnelle Diffs Branches Merge Tags SVN-Repository klonen: Umgang mit History Patches Ø ×ÚÒ ÐÓÒ ¹× Ö ÔÓÙÖÐ Ô SVN-Integration Trac-Integration Updates von SVN-Repository holen: weitere Integrationen Ø ×ÚÒ Ø Referenzen Diskussion/Fragen Änderungen ins SVN übertragen: Ø ×ÚÒ ÓÑÑ Ø 1 funktioniert unter Windows noch eher schlecht ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 22
  24. 24. Trac-Integration Verteilte Versionsverwaltung s das GitPlugin [5] für Trac erlaubt Git- statt Git SVN-Repositories Git praktisch Start mit Git s über pre-receive und post-receive-Hooks [6] kann ein Repositories klonen Branches Git-Repository mit einer Trac-Installation interagieren Merge und z.B. Tickets schließen oder Kommentare zu diesen Tags Umgang mit History hinzufügen Patches SVN-Integration Trac-Integration weitere Integrationen Referenzen Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 23
  25. 25. weitere Integrationen Verteilte Versionsverwaltung s Maven ØØÔ »»Ñ Ú Òº Ô ºÓÖ »× Ñ» غ ØÑÐ Git Git praktisch s JIRA Start mit Git ØØÔ »» ÓÒ ÐÙ Ò º ØÐ ×× Òº ÓÑ» ×ÔÐ Ý»ÂÁÊ Ì»Â Ö Repositories klonen Branches Merge s Hudson Tags ØØÔ »»Û º Ù ×ÓÒ¹ ºÓÖ » ×ÔÐ Ý»ÀÍ ËÇÆ» Ø·ÈÐÙ Ò Umgang mit History Patches SVN-Integration Trac-Integration weitere Integrationen Referenzen Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 24
  26. 26. Referenzen Verteilte Versionsverwaltung [1] ØØÔ »»ÛÛÛº Ø¹× Ñº ÓÑ» Git Git praktisch [2] ØØÔ »»ÛÛÛº Ø¹× Ñº ÓÑ» Ó ÙÑ ÒØ Ø ÓÒ Start mit Git Repositories klonen [3] SourceForge Git Hosting Branches Merge Tags [4] ØØÔ »» Ø Ù º ÓÑ» Umgang mit History Patches [5] ØØÔ »»ØÖ ¹ ׺ÓÖ »Û » ØÈÐÙ Ò SVN-Integration Trac-Integration weitere [6] Commithooks von John Goerzen Integrationen Referenzen Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 25
  27. 27. Verteilte Versionsverwaltung Vielen Dank für Eure Aufmerksamkeit. Git Gibt es Fragen? Git praktisch Diskussion/Fragen ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 26
  28. 28. Kontakt Verteilte Versionsverwaltung Jan Dittberner Git Software Architekt und Debian Developer Git praktisch Communardo Software GmbH Diskussion/Fragen Kleistraße 10a D-01129 Dresden jan.dittberner@communardo.de ⃝ Communardo Software GmbH ⋅ Fon +49 (0) 351 833820 ⋅ info@communardo.de ⋅ www.communardo.de c Seite 27

×