Versionsverwaltung mit Git
Versionsverwaltung mit Git
Git ist eine Open Source Software zur Versionsverwaltung, die im Jahr 2005 vom Linux-Erfinder Linus Torvalds kreiert wurde. Der Ursprung des Namens „Git“ liegt in der britischen Umgangssprache und bedeutet in etwa „Blödmann“. Warum ausgerechnet Blödmann? Linus Torvald antwortete auf diese Frage mit: „I’m an egotistical bastard, and I name all my projects after myself. First ‚Linux‘, now ‚Git’”. Übersetzt also: “Ich bin egoistischer Blödmann und benenne alle Projekte nach mir selbst. Zuerst ‚Linux‘ und nun eben ‚Git‘“.
Warum nutzen wir Git?
In agilen Teams ist parallele Arbeit an Komponenten keine Seltenheit. Damit sich die Entwicklungen dabei nicht überschreiben, ist es wichtig ein funktionierendes System zur Versionskontrolle zu haben. Daher arbeiten wir in allen Teams mit Git. Git ermöglicht es, lokal auf dem eigenen Rechner zu arbeiten und seinen Entwicklungsstand mit dem des restlichen Teams zu teilen. Während andere Tools Dateien lediglich vom Server aus- und wieder einchecken, unterscheidet sich Git hierbei stark von Konkurrenten wie Subversion. Indem es Änderungen zunächst lokal in einem sogenannten Repository speichert und dann auf einem Server synchronisiert, können mehrere Personen sogar zeitgleich an einer Datei arbeiten, ohne sich in die Quere zu kommen. Auf dem Server werden dann die Änderungen aller Beteiligten zu einer gemeinsamen Code-Basis zusammengeführt.
GitLab oder GitHub? Oder beides?
Um unseren Code auch übersichtlich zu verwalten, nutzen wir für unsere Projekte GitLab. Das Tool ermöglicht es, unsere Komponenten zu versionisieren. Zudem bietet es ein hohes Maß an Sicherheit, da es auf unserem Server liegt und von außen nicht zugänglich ist.
Hier arbeiten mehrere Teams nicht nur an der Entwicklung, sondern auch an der Code-Qualität. Diese wird durch sogenannte Pull-Requests gewährleistet, bei denen eine Umsetzung nochmal durch ein zweites, oder auch ein drittes Augenpaar gesichtet und geprüft wird. Nach Bestätigung des Request darf der Code zur Basis hinzugefügt werden. Das Ganze geschieht aber nicht ohne vorher nochmals durch automatisierte Tests gelaufen zu sein. Für maximale Qualität wird jede Umsetzung zusätzlich manuell getestet und freigegeben, bevor sie zum Kunden darf.
Weil es uns Spaß macht moderne Web- und Softwarelösungen bereitzustellen, gibt es einige Open Source Tools aus unserem Haus auch frei zugänglich für jeden im Internet. Diese stellen wir bei der beliebten Plattform GitHub zur Verfügung. Hier haben sich mit der Zeit schon einige Tools angesammelt, die wir intern entwickelt haben und es zu schade fanden, sie für uns zu behalten. Klickt gerne mal auf unser GitHub-Profil und schaut euch unsere Tools an!
Vorteile von Git
Durch die hohe Flexibilität von Git und durch unsere agilen Teams können wir jederzeit in der Größe skalieren. Wir sind also in der Lage je nach Anforderung mit einem größeren oder kleineren Team an einem Projekt arbeiten zu können. So haben wir die Möglichkeit, individuell auf jeden Kundenwunsch reagieren zu können und das bestmögliche Ergebnis bereitzustellen. Ein weiterer Vorteil in der Entwicklung mit Git liegt in der Verknüpfung mit automatischen Deployments wie dem Tool „Jenkins“. Wir können hier den Git-Workflow einbinden, um dann automatisch ein Update auf dem Server des Kunden starten. So erfolgen all unsere Deployments komplett automatisiert.