Review: Das Git-Buch
Ich habe soeben “Das Git-Buch – Verteilte Versionsverwaltung für Code und Dokumente” von Valentin Haenel und Julius Plenz gelesen. Das deutschsprachige Buch füllt 328 Seiten und konkurriert mit freien Büchern wie dem Git Community Book, Pro Git und Git In the Trenches. Das Inhaltsverzeichnis des Buches sieht wie folgt aus:
- Einführung und erste Schritte
- Grundlagen
- Praktische Versionsverwaltung
- Fortgeschrittene Konzepte
- Verteiltes Git
- Workflows
- Git auf dem Server
- Git automatisieren
- Zusammenspiel mit anderen Versionsverwaltungssystemen
Es geht schnell zur Sache: die fürs Verständnis besonders wichtigen Themen Index und Objektmodell sind bereits nach rund 60 Seiten solide absolviert. Bei dickeren Büchern habe ich immer Angst, dass die Seiten mit Auszügen aus Manpages oder Kommandozeilenoutput gefüllt sein könnten, das ist aber hier definitiv nicht der Fall. Die Erklärungen sind knackig und präzise geschrieben, es wird nicht lange um den heißen Brei geredet.
Es gibt anschauliche Beispiele und es wird nicht nur das wie erklärt, sondern auch das warum und was der Hintergrund von einem anfangs vielleicht noch komisch anmutendem Konzept ist. Fortgeschrittene Themen wie reflog und filter-branch werden praxisnahe behandelt und auch meine Lieblinge wie –color-words, interaktives Rebasen, git grep und cherry-picking kommen vor.
Ich habe einiges dazu gelernt, wie z.B. ‘git show id:datei’, ‘git gui blame’, den Einsatz von ‘git rerere‘ und wie man eine GPG-Signatur in einen Blob steckt. Dass die sehr nette patch-Option ‘-p’ in vielen Tools funktioniert war mir bereits bekannt, dass die verbose-Option ‘-v’ aber etwa beim Commiten nützlich sein kann war mir neu. Der Hinweis auf mergeinfo-Support in git-svn mit Git Version 1.7.4 kam mir ebenso wie die Gegenüberstellung von Submodules zu Subtrees gerade recht.
Zu Beanstanden habe ich nur eine Kleinigkeit: Im Absatz über gute Commit-Nachrichten fehlt mir ein Hinweis auf englischsprachige Commit-Nachrichten als empfehlenswerter Standard. Das Buch richtet sich natürlich an deutschsprachiges Publikum und daher sind die deutschen Commit-Nachrichten in den Beispielen verzeihbar, aber deutschsprachigen Commit-Nachrichten möchte zumindest ich in keinem Repository begegnen, an dem mehrere Personen beteiligt sind.
Aus der Stichwortliste was ich gerne erwähnt gefunden hätte sind folgende Punkte offen geblieben: das praktische Tool git-wtf, das Konsolenfrontend tig sowie der mit speziellen Tools versehene Workflow gitflow. Zu git-svn fällt mir noch die addAuthorFrom/useLogAuthor-Thematik ein. Sehr praktisch für den Alltag finde ich weiters url insteadOf/pushInsteadOf. Im Kapitel zu Github hätte vielleicht noch ein Hinweis auf eines der hilfreichen Tools wie git-pull-request Platz gehabt. Dass Tools wie git-buildpackage und gitpkg im Debian-Paketbau beliebt sind und diverse Frontends für Emacs und Vim existieren hätte aber vermutlich das Buch inhaltsmäßig gesprengt oder das Risiko mit sich gebracht, dass die Informationen für ein Buch zu schnell überholt sein könnten.
Mein Fazit: Selbst mit über 3 Jahren Erfahrung und als Anhänger von Git hat mich das Buch nicht gelangweilt, sondern das vorhandene Wissen gefestigt und neues dazugestellt. Das Buch liefert solides Wissen in angenehm lesbarer Form und ich kann es Einsteigern wie Fortgeschrittenen empfehlen. Man hat damit den passenden Überblick und die richtigen Stichwörter um sich durch die diversen Manpages und die Weite des Internets zu kämpfen und Git voll genießen zu können.
Disclaimer: Ich habe vom Verlag ein kostenloses Exemplar zur Verfügung gestellt bekommen.