Code verwalten mit Git#

Um eine bessere Kontrolle über euren Quellcode zu erhalten, wird dieser üblicherweise mit Git verwaltet. Git ist ein ausgereiftes und sehr aktiv gepflegtes Open-Source-Projekt, das 2005 ursprünglich von Linus Torvalds, dem Initiator des Linux-Betriebssystem-Kernels, entwickelt wurde. Git lässt sich gut mit vielen Betriebssystemen und IDEs kombinieren.

Mit seiner verteilten Architektur ist Git ein Beispiel für ein DVCS – einem verteilten Versionskontrollsystem. Somit muss sich nicht mehr die gesamte Versionshistorie an einem einzigen Ort befinden, wie dies bei früher beliebten Versionskontrollsystemen wie CVS oder Subversion (SVN) üblich war. In Git kann jedes lokale Repository spezifische Änderungen enthalten.

Git kann jedoch nicht nur verteilt genutzt werden, sondern ist auch performant, sicher und flexibel.

Performance#

Git ist im Vergleich zu vielen anderen Versionsverwaltungssystemen sehr schnell bei Commits von Änderungen, beim Verzweigen und Zusammenführen und dem Vergleich mit früheren Versionen. Dies ist auch erforderlich, wenn wir uns das Linux-Kernel-Repository mit über einer Millionen Commits anschauen. Dabei orientiert sich Git nicht an Dateinamen, sondern konzentriert sich auf inhaltliche Änderungen, sodass Dateien effizient umbenannt, aufgeteilt und neu angeordnet werden können. Dies erreicht Git durch die Speicherung von Deltas für die inhaltlichen Unterschiede, Metadaten der Dateien und Komprimierung.

Das verteilte Versionsverwaltungssystem sorgt darüberhinaus dafür, dass z.B. für die Implementierung einer neuen Funktion kein Netzwerkzugriff auf einen entfernten Server erforderlich ist und daraus folgende Verzögerungen ausbleiben. Auch könnt ihr lokal an einer früheren Version eine Fehlerkorrektur durchführen. Später können mit einem einzigen Befehl beide Änderungen an einen zentralen Server übermittelt werden.

Sicherheit#

Die Integrität des verwalteten Quellcodes hatte hohe Priorität bei der Konzipierung von Git. So werden die Beziehungen zwischen Dateien und Commits durch einen Hashing-Algorithmus (SHA1) geschützt, sodass versehentliche oder vorsätzliche Änderungen erschwert und der tatsächliche Verlauf sichergestellt werden.

Flexibilität#

Git erlaubt nicht nur sehr flexible Arbeitsabläufe sondern ist auch für große wie kleine Projekte auf verschiedenen Plattformen geeignet.

Kritikpunkte#

Eine häufige Kritik an Git ist, dass es schwer erlernbar sei: entweder sind große Teile der Git-Terminologie neu oder in anderen Systemen haben Bezeichnungen eine andere Bedeutung, wie z.B. revert in SVN oder CVS. Zudem bietet Git viel Funktionalität, die zum Erlernen jedoch einige Zeit benötigt.

xkcd comic

Zum Weiterlesen#