Git und Git Workflows

Verteilte Versionskontrolle, einzigartige Features

Längst ist Git im kommerziellen Umfeld im Einsatz, auch weil Entwickler fortwährend die vollständige Versionshistorie vorrätig haben. Am Arbeitsplatz bleibt die Arbeitsweise dieselbe: Branches sind immer lokal und können u. a. pro Feature oder Experiment isoliert angelegt werden. Mit den bezogenen Änderungen aus Remote Repositories gelingen lokaler Vergleich und Merge, ohne dass sich Änderungen schon in lokalen Branches vorher widerspiegeln. Die Selektion für Commits – alles oder bestimmte Dateibereiche – ist ein weiterer deutlicher Vorteil von Git.

This training can be held in German or English language. View this agenda in English.

Unterschiede zu klassischen Versionskontrollsystemen

  • Grundlagen und Vorteile verteilter Versionskontrollsysteme
  • Warum der SHA als „Revisionsnummer“ so wichtig ist
  • Kryptographische Sicherheit der Projektgeschichte
  • Wie Git Daten über Zeiger verwaltet und mehr als nur „CVS done right“ ist; Abgrenzung zu Mercurial

Grundlegendes Git

  • Umgang mit der Arbeitskopie und dem Index
  • Commit, Rücksetzen und Rückgängigmachen von Änderungen
  • Dateien dauerhaft oder temporär ignorieren
  • Changesets an Server übertragen und abrufen
  • Behandlung von Mergekonflikten
  • Darstellung von Unterschieden per Konsole und visuellen Tools
  • Features mithilfe von Branches getrennt entwickeln
  • Zusammenführen von Branches: Unterschied Merging zu Rebasing
  • Veröffentlichen von Branches

Erweitertes Git

  • Arbeit mit mehreren Servern und Remote Branches
  • Partielle Commits und Rücksetzungen
  • Das reflog als „Papierkorb“ mit Zusatzfunktionen
  • Mit git stash Zwischenergebnisse ablegen
  • Cherry-picking zur Auswahl der „Rosinen“ aus Commits effektiv nutzen
  • git bisect zum Auffinden von Bugs

Git Workflows

  • git-flow, ein Modell zur systematischen Arbeit mit Branches
    • Erzeugen isolierter Features einer Software
    • Erstellen von Releases, Anwenden von Hotfixes, Wartung alter Releases
  • Mit Stilen „Subversion“, „Integrationsmanager“ und „Diktator-und-Leutnant“ normale bis massive Projekte mit Fork, Pull und Push abbilden
  • Multiple und trianguläre Workflows

Git Repository Hosting

  • Einrichtung, Hosting und Betrieb von Git-Repositories
  • Hosting per Netzwerkfreigabe
  • Feingranulare Authentifizierung, Zugriffskontrolle per SSH und Gitolite
  • Code-Hosting-Services wie Bitbucket oder GitHub
  • Integration, Migration / Konvertierung von vorhandenen Bazaar-, ClearCase-, CVS-, JEDI VCS-, Mercurial-, Perforce-, Rational-, RTC-, SourceAnywhere-, SourceSafe-, SVN-, TFS-, Vault- und Veracity-Repositories zu Git
  • Best Practices für Git-Repository-Strukturen, inklusive für große Projekte mit Millionen Zeilen Code
  • Typische Fragestellungen in Softwareentwicklungsprozessen in Verbindung mit Git wie Variantenpflege, zwischen verschiedenen Projekten geteilten Dateien oder Modifikationen einzelner Dateien in einer gemeinsamen Basis
    • Lösungen per „git-subrepo“ oder „git-externals“
    • Alternativen wie „repo“, „git-repo“ (mit Push), „git-subtree“
  • Synchronisation und Administration von Git-Repositories über Unternehmensgrenzen hinweg
  • Nutzung von Open-Source-Projekten und Mitarbeit daran

Arbeit mit Windows Explorer, IDE und Sonstiges

  • Unterkomponenten mit „git-submodule“ verwenden
  • Versand und Empfang von Patches mit git format-patch, git apply-patch, git am
  • Grafische Werkzeuge zur Bedienung von Git
  • Plug-ins für Windows Explorer
  • Add-ins, Source Control Provider und Arbeit mit NetBeans, IntelliJ-basierten IDEs und Visual Studio
  • Verwendung von Git / Git Workflows bei CMS, u. a. bei TYPO3
  • Kollaborative Code Review-Systeme für Git wie Pull Requests oder Gerrit
  • Features nur auf der Kommandozeile
  • Visualisierung mit Gource

Entstehungsgeschichte

Git wurde mit Wert auf Geschwindigkeit, Einfachheit und nicht-lineare Entwicklung konzipiert. Zahlreiche parallele Branches stellen wie die Zusammenführung ihrer Ergebnisse kein Problem dar.

Unsere Veranstaltungsorte von dieser / diesem Schulung, Training, Seminar, Kurs (nach oben): Berlin, Dresden, Frankfurt am Main, Hamburg, Hannover, Karlsruhe, Köln, Leipzig, Magdeburg, München, Stuttgart und Inhouse.

Fortbildung oder Weiterbildung zu Git – wir setzen nur auf erfahrene Talente als Git Trainer. Das Credo von Alexander Groß lautet „Ich will, dass Entwickler auf ihre Software stolz sein können“. Mehr zu ihm und den Beweggründen unserer anderen Trainer erfahren Sie bei seiner Biographie (direkt erreichbar per Bild).

Nach oben