Der Einsatz eines Versionskontrollsystems ist längst weit verbreitet. Ob open-source oder kommerziell, die Flexibilität und Effizienz von Git hilft den täglichen Anforderungen eines Projektes optimal gerecht zu werden. Beispielsweise kann die Effizienz im Projekt durch parallele Entwicklungen gesteigert werden.
Doch viele Anwender wissen nicht um das ganze Potential, welches in Git steckt. Viel Zeit und Energie wird so verschenkt und eine mögliche Effizienzsteigerung der Arbeitsabläufe bleibt ungenutzt.
Folgende 3 Themen sind wichtig, um Git sinnvoll und effizient einsetzen zu können:
Für die Arbeit mit Git ist das Wissen um die Funktionen und deren Verständnis essenstiell. Wie kann ich X tun? Was passiert alles wenn ich den Befehl Y verwende? Dies hilft die Angst vor unabsehbaren Auswirkungen einzelner Funktionen zu vermeiden und die Möglichkeiten von Git für einen effizienten Einsatz voll auszuschöpfen.
Wie integriert man Git in bestehende Workflows oder schafft neue effiziente Workflows auf Basis der Funktionen von Git? Diese Antworten auf diese Fragen helfen Git im täglichen Projektablauf optimal und unterstützend einzusetzen und den bestmöglichen Nutzen zu erreichen.
Auch wenn (noch) nicht alle Teammitglieder Git direkt einsetzen, so ist mindestens das (grobe) Verständnis für ein solch zentrales Werkzeug hilfreich, um Reibungsverluste in der Kommunikation zu vermeiden und gemeinschaftliche die Optimierung bestehender Prozesse voranzutreiben.
In diesem grundlegenden Teil, wird ein Grundwissen zu Git aufgebaut. Neben einem geschichtlichen Einblick und er Abgrenzung zu anderen Versionskontrollsystemen, werden die wichtigsten Konzepte und Techniken vermittelt.
Die Installation und Einrichtung von Git rundet diesen Teil inhaltlich ab. Die Teilnehmer besitzen am Ende das Handwerkszeug um sicher und effizient mit Git arbeiten zu können.
Manche Blogs bezeichnen das Wissen dieses Teils als "Ninja-Skills". Aufbauend auf einem soliden Grundwissen werden Kenntnisse zur individuellen Benutzung und zur gemeinschaftlichen Benutzung von Git sowie zur Datenwiederherstellung vermittelt.
Git-Workflows, deren Umsetzung und Anpassung sowie der Aufbau eigener Workflows/Policies bildet den zweiten großen Schwerpunkt. Abschließend wird der Übergang von SVN zu Git diskutiert.
Vor allem bei langfristig angelegten Projekten, besteht immer wieder der Wunsch, auch die Grafiker und Designer in den Arbeitsablauf mit Git zu integrieren. Ein grundlegendes Verständnis sowie der geschärfte Blick auf die Vorteile von Git für die Zusammenarbeit sind hierfür essentiell.
Dieser Teil bringt speziell Grafikern und Designern die Arbeit mit Git nahe und zeigt an realistischen Fallstudien, wie der Einsatz von Git aussehen kann und welchen Mehrwert dieser bietet. Weniger technische Details, vielmehr das wichtigste Handwerkszeug und der Einblick in Arbeitsabläufe mit Git und entsprechenden visuellen Tools werden vermittelt.
Geschichte der Versionskontrolle (Vor- und Nachteile), Entstehung von Git und Abgrenzung zu SVN
Einblick und allgemeines Verständnis grundlegender Begriffe des Git-Repositories
Lokales Repository aufbauen und überprüfen, Änderungen hinzufügen, entfernen und als Commit in das Repository übertragen
Remote-Repositories anlegen, klonen und verwalten, Änderungen ins Remote-Repository übertragen und abrufen
Anzeigen von Commits und speziellen Datei-Versionen, Suchen in der Projekthistorie
Darstellung von Unterschieden zwischen Arbeitsverzeichnis, Staging Area (Index) und der Projekthistorie
Branching-System in Git, Branches lokal und remote anlegen, verwalten, nutzen und löschen
Merge-Strategien und Rebase-Ablauf sowie Umgang mit Merge-Konflikten
Tags lokal und remote anlegen, verwalten und löschen
Commits ausbessern, Dateien zurücksetzen, Commits oder rückgänging machen oder verwerfen
Installation auf Windows, Mac und Linux/Unix
Möglichkeiten der Einrichtung, Grundkonfiguration sowie Optionen um die Effizienz bei der Nutzung von Git zu erhöhen
Probleme im Zusammenspiel verschiedener Platformen vermeiden
Dateien und Verzeichnisse für Git unsichtbar machen
Tools und Plugins für den Umgang mit Git
Diese Schulung richtet sich vornehmlich an Softwareentwickler und -architekten sowie Personen mit technischem Hintergrund, welche Git aktiv in Projekten nutzen möchten.
Relative Bezeichung von Commits
Temporäre, lokale Ablage von Zwischenständen und deren Verwaltung
Übertragen von einzelnen Commits zwischen Branches
Interaktives Verändern der Projekthistorie (Commits neu ordnen, editieren, zusammenführen und aufteilen)
Gelöschte Commits und Branches finden und wiederherstellen
Umgang mit ungenutzten Dateien, Branches und der Garbage Collection
Patch-Workflow, Patches anlegen, versenden, anwenden
Git-Submodule einbinden, aktualisieren, löschen, Umgang mit Repositories mit Submodulen
Bugs und andere Sachverhalte (halb)automatisiert mit Hilfe von Git finden
Best-Practise Möglichkeiten der Teamorganisation für die Arbeit mit Git
Best-Practise Arbeitsweisen für den effizienten und flexiblen Einsatz von Git in unterschiedlich großen Projekten (systematischer Einsatz von Branches zur Verwaltung isolierter Features einer Software)
Weitergabe von Erfahrungswerten bei der Anwendung von Git
Individuelle Anpassungsmöglichkeiten um die Bedienung von Git zu Vereinfachen und zu beschleunigen
Anpassung des Verhaltens von Git z.B. zur Automatisierung oder der Umsetzung von Team-Richtlinien (policies)
Vorhandene SVN-Repositories in Git-Repositories umwandeln und aufräumen
Diese Schulung richtet sich besonders an Softwareentwickler und -architekten sowie jeden der ein tieferes Wissen im Umgang mit Git erlangen möchte. Mit diesem Wissen ist es muoglich selbst effizienter zu arbeiten, Abläufe im Team zu organisieren sowie dem Team bei gravierenden Problemen im Umgang mit Git zu helfen.
Allgemeine Einführung in Versionskontrolle, Welchen Sinn machen Versionskontrollsysteme und welche Vorteile bieten sie?
Wie integrieren sich Versionskontrollsysteme in den Arbeitsablauf?
Welche Perspektive hat der Entwickler bei der Projektarbeit mit Git und wie kann diese mit der Sichtweise des Designers effizient zusammen spielen?
Änderungen lokal hinzufügen und an Remote-Repository übertragen und abrufen
Welche grafischen Tools stehen auf den verschiedenen Platformen zur Verfügung.
Welche Funktionen der grafischen Tools sind für Designer relevant und wie arbeitet man damit? Wie werden die Tool konfiguriert?
Darstellung des Arbeitsablaufs mit Git anhand eines exemplarischen Projektes.
Überblick über Workflows für die Arbeit mit Git (Aufbau eines Verständnisses für die Arbeitsweise im Team mit Entwicklern).
Diese Schulung richtet sich vor allem an Designer und Grafiker, welche sich auf die Arbeit mit Git vorbereiten oder den Arbeitsablauf mit Git weiter verbessern wollen.
Die Inhalte sind für Sie zu verteilt oder Sie interessieren sich nur für einige Inhalte? Sie oder Ihr Team besitzen völlig andere Voraussetzungen, da Sie z.B. als Projektmanager arbeiten? Oder benötigen Sie nur einen Einblick in Git für ein generelles Verständnis der Arbeitsweise Ihres Teams?
Teilen Sie mir Ihre Wünsche, Anforderungen und Voraussetzungen mit und ich werde Ihnen ein für sie individuell passendes Angebot zusammenstellen.
Die Vermittlung der Theorie ist grafisch aufbereitet, um das Verständnis zu erleichtern. Anhand eines begleitenden praxisnahen Beispielprojektes wird das erlernte Wissen direkt angewand und somit gefestigt und vertieft.
Durch kleine Gruppen mit maximal 8 Teilnehmern kann jederzeit auf entstehende und vorhandene Fragen individuell eingegangen werden. Sommit lassen sich Unsicherheiten gut bekämpfen und Wissenslücken direkt vermeiden.
Die Schulungsunterlagen stehen direkt am Schulungstag jedem Teilnehmer online zur Verfügung, sodass direkt damit gearbeitet werden kann. Zudem wird ein umfangreiches Cheat-Sheet verteilt, welches die einzelnen Aspekte der Schulung zusammenfasst und auf wichtige Resourcen verweißt. Gerade nach dem Erlernen neuen Wissens kann diese Gedankenstütze im alltäglichen Arbeitsfluss eine große Zeitersparnis sein.
Innerhalb eines Schulungstages erlernen die Teilnehmer das nötige Wissen, um Git im Alltag einsetzen zu können bzw. den Umgang mit Git effizienter zu gestalten oder Arbeitsabläufe zu verbessern und individueller an Projektbedürfnisse anzupassen.
Jede Teilnehmergruppe hat variierende Vorbildungen und spezifische Erwartungen an eine Git-Schulung. Deshalb sollte jede Schulung bei Bedarf individuell angepasst werden. Die angegebenen Kursinhalte sind für die meisten Schulungsgruppen sehr gut geeignet, da sie den Funktionumfang mit Git sehr gut abdecken und die Arbeitsabläufe im Team herausarbeiten und Erfahrungswerte vermitteln. Die einzelnen Inhalte lassen sich jedoch auch frei kombinieren, sodass relevante Punkte beibehalten und nicht-relevante Punkte weggelassenw erden können.
Gern berate ich Sie im Vorfeld und passe die Schulungen individuell für die Teilnehmer an.
Ich bin Stephan Partzsch, Diplom-Medieninformatiker (FH) und arbeite als freiberuflicher Softwareentwickler und ScrumMaster. Schwerpunktmäßig arbeite ich an interaktiven Anwendungen im Web- und Mobil-Bereich (iOS). Hierbei setze ich seit 2010 agile Methoden wie Scrum und eXtreme Programming (XP) ein.
Besonderes Interesse habe ich Testing und Clean Code sowie an der Optimierung von Arbeitsabläufen im Softwareentwicklungsprozess um die Arbeit angenehmer zu gestalten und die Effizienz zu steigern. Mein Motto ist "Für jeden Anwendungsfall das richtige Tool!". Bei der Integration der Tools in einen bestehenden Arbeitsablauf muss sich das Tool anpassen und nicht ander herum. Dazu ist es wichtig von der Sinnhaftigkeit des Tools überzeugt zu sein und dessen Möglichkeiten zu kennen. Arbeitet man nur an der Oberfläche, ist es möglich den Mehrwert des Tools nicht nutzen zu können und unnötig Zeit zu verschwenden.
Ich freue mich, wenn ich meine Erfahrungen im Umgang mit Git weitergeben kann und es macht mir sehr viel Spaß dabei zu helfen Git an spezielle, im besten Fall bereits optimierte, Arbeitsabläufe anzupassen/einzurichten.
In User Groups sowie auf Konferenzen halte ich gern Vorträge und geben mein Wissen weiter.