Git für Dummies
Git für Dummies
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de
abrufbar.
© 2021 WILEY-VCH GmbH, Weinheim
Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.
Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.
Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.
Coverfoto: © dekzer007 – stock.adobe.com
Korrektur: Birgit Volk, Bonn
Bindung
Print ISBN: 978-3-527-71697-5
ePub ISBN: 978-3-527-82623-0
Michael Kaufmann ist seit mehr als 20 Jahren leidenschaftlicher Softwareentwickler und arbeitet seither mit den unterschiedlichsten Versionsverwaltungen. Seit 15 Jahren befasst er sich mit dem Thema Application Lifecycle Management und DevOps, was ihn vor mehr als acht Jahren zum Thema Git gebracht hat.
Er ist Spezialist für DevOps, GitHub und Azure DevOps und unterstützt seine Kunden als Coach und Trainer auf ihrem Weg zu agilen DevOps-Organisationen und bei der Implementierung von modernen Entwicklungs- und Betriebskonzepten. Seit 2015 wurde ihm von Microsoft jedes Jahr die Auszeichnung »Most Valuable Professional« in der Kategorie »Developer Technologies« verliehen.
Neben der Technik war Mitarbeiter- und Unternehmensführung immer einer seiner Schwerpunkte. Aktuell verantwortet er beim internationalen Beratungsunternehmen CGI als Vice President den Bereich »DevOps & Innovation«. Dort begleitet er seine Kunden bei der digitalen Transformation – nicht nur technisch, sondern auch strategisch.
Michael Kaufmann ist der Gründer des »GitHub Meetup Stuttgart« und einer der Organisatoren des »Azure Meetup Stuttgart«. Er ist regelmäßiger Sprecher auf nationalen und internationalen Konferenzen und publiziert in Fachzeitschriften und auf seinem Blog.
2019 wurde ihm die Auszeichnung »Regional Director« von Microsoft verliehen – eine Auszeichnung für Technologie-Visionäre, die sich durch technische Expertise, Einsatz in der Community und durch ihren Geschäftserfolg hervorgetan haben.
Mein Dank gilt zuallererst meiner Frau und meinen Kindern Mael und Malena. Ein Buch neben der normalen Arbeit zu schreiben, bedarf viel Wochenend- und Nachtarbeit, und auch etliche Wochen Urlaub mussten dafür geopfert werden. Ich weiß es wirklich sehr zu schätzen, dass ihr mich bei solchen Dingen immer voll unterstützt.
Außerdem bedanke ich mich bei Andrea Baulig, die mich so geduldig durch den ganzen Schreibprozess begleitet hat und von der ich sehr viel lernen durfte. Vielen Dank!
Meinem Fachkorrektor Harald Binkle danke ich für die gute und kollaborative Zusammenarbeit und die vielen Anregungen, die er mir gegeben hat. Ein besonderer Dank gilt Florian Gänßlen, welcher mein Manuskript sehr gründlich gelesen hat und mir sehr wertvolles Feedback gegeben hat. Außerdem bedanke ich mich bei Benjamin Abt und Johannes Nicolai für ihre fachlichen Korrekturen und Ergänzungen: Dass ihr beide nicht mehr zu beanstanden hattet, hat mir ein gutes Gefühl gegeben. Ich danke euch allen für die fachliche und sprachliche Unterstützung!
Mein Dank gilt auch den Teams von Microsoft und GitHub, die ich über all die Jahre begleiten durfte und die so offen ihr Wissen und ihre Erfahrung mit mir geteilt haben, und natürlich meinen MVP-Kollegen und all den anderen ALM-Champs. Ich habe sehr viel von euch allen gelernt!
Ich freue mich sehr, mit Ihnen gemeinsam das Universum von Git zu erkunden. Ich erkläre dabei nicht nur die wichtigsten Befehle von Git, ich nehme Sie auch mit auf eine Reise in Open Source, DevOps und die Git-Workflows. Nach der Lektüre des Buches und vielen praktischen Übungen können Sie sicher mit Git umgehen und wissen, wie man im Team effektiv damit zusammenarbeitet. Es wird für Sie dann auch möglich sein, Beiträge zu Open-Source-Projekten zu leisten oder Ihr eigenes Projekt zu starten. Ich wünsche Ihnen viel Spaß beim Eintauchen in dieses spannende Thema.
Ich gebe in diesem Buch eine sehr praxisorientierte Einführung in Git – mit vielen Beispielen zum Ausprobieren und Tipps aus der Praxis. Das Buch ist also kein Nachschlagewerk, das alle Optionen von Git erläutert. Es ist auch kein Theoriewerk über die Funktionsweise von Git. Es ist ein praktischer Einstieg, der Sie mit allem ausrüstet, um danach in bestimmte Themen tiefer einsteigen zu können.
Git ist ein sehr umfangreiches und mächtiges Werkzeug, welches man vielfältig in den unterschiedlichsten Szenarien einsetzen kann. Aber nur weil man etwas tun kann, heißt das noch nicht, dass man es auch tun soll. Ich fokussiere mich deshalb immer auf die Dinge, die in der Praxis gut funktionieren und Komplexität reduzieren, statt sie zu erhöhen.
In diesem Buch finden Sie sehr viele Befehle, die über eine Kommandozeile einzugeben sind. Befehlen ist immer ein Dollarzeichen ($
) vorangestellt. Vor einer Ausgabe, die von einem Programm auf der Konsole ausgegeben wird, steht immer ein Größerzeichen (>
).
> On branch main
> Your branch is up to date with 'origin/main'.
>
> nothing to commit, working tree clean
Manchmal finden Sie in diesen Teilen kursive Begriffe. In diesem Fall handelt es sich immer um Platzhalter, die Sie durch einen konkreten Wert ersetzen müssen, in nachfolgendem Beispiel durch Ihren Benutzernamen.
Ansonsten sind kursive Begriffe immer Fachbegriffe, die das erste Mal in diesem Kontext verwendet werden.
Tauchen Befehle im laufenden Text auf, dann sind diese anders formatiert, wie zum Beispiel git status
.
Menüeinträge sind immer in KAPITäLCHEN gesetzt. Tasten und Tastenkombinationen werden wie folgt dargestellt: oder +.
Pfadangaben im Fließtext werden wie Befehle formatiert: C:\Ordner\Ordner\Datei.txt
oder /home/Ordner/Datei.txt
. Relative Pfade werden immer mit dem Schrägstrich geschrieben (./Ordner/Datei.txt
), außer, sie beziehen sich explizit auf ein Betriebssystem. Wenn Sie also in der PowerShell die Beispiele ausprobieren, dann müssen Sie stattdessen die Windows Syntax (.\Ordner\Datei.txt
) verwenden.
Webadressen sind in diesem Buch immer wie folgt formatiert: https://writeabout.net
Ich verwende in diesem Buch fast immer die englischen Originalbegriffe, nachdem ich sie einmal am Anfang des Kapitels erklärt habe, weil auf der Kommandozeile auch alle Befehle in englischer Sprache eingegeben werden müssen. Außerdem ist es bei der Dokumentation oder der Fehlersuche auch hilfreich, wenn man das englische Original kennt. Das Verstehen der übersetzten Begriffe in anderen Anwendungen sollte weniger Probleme bereiten als das Erraten des englischen Begriffs, wenn man ihn nur auf Deutsch gelernt hat.
Git ist ein Kommandozeilen-Programm. Deshalb lernt man es am besten auch auf der Kommandozeile. Natürlich gibt es zahlreiche Tools, welche eine Benutzeroberfläche für Git anbieten. Aber wenn man ein Problem hat und nach einer Lösung sucht, dann findet man meistens nur Lösungen für die Kommandozeile. Der Vorteil der Kommandozeile ist auch, dass das Interface sehr konstant bleibt und sich kaum ändert. In Kapitel 5 stelle ich einige grafische Anwendungen und ihre Git-Integration vor, ansonsten verwende ich immer die Kommandozeile.
Der Name für die Verzweigung (Branch), der allen anderen Branches zugrunde liegt, war bei Git seit jeher master
. In der #blacklivesmatter-Bewegung im Jahr 2020 gab es zu Recht Kritik an diesem Namen, da er an die Sklaverei erinnert. Da es sich bei diesem Namen nur um eine Konvention handelt, spielt es keine Rolle, wie er lautet. Der Branch kann genauso gut trunk
(Stamm) oder main
(Haupt) genannt werden.
Aus Rücksicht auf Menschen, die durch diesen Namen an schlimme Zeiten unserer Geschichte erinnert werden, werde ich den Haupt-Branch in diesem Buch main
nennen. Wenn Sie also in einem anderen Tutorial oder in einer anderen Dokumentation die Bezeichnung master
für einen Branch finden, dann wissen Sie, dass dieser Branch meinem main
entspricht. Technisch hat der Name keine Auswirkungen, er ist nur eine Konvention.
Die Teile und Kapitel dieses Buchs bauen thematisch aufeinander auf: von den Grundlagen über die Zusammenarbeit im Git-Universum bis zu den Vertiefungsthemen. Trotzdem ist das Buch so modular aufgebaut, dass Sie jedes Kapitel auch für sich lesen können. Wenn Sie schon Erfahrung mit Git haben, dann können Sie zum Beispiel einige Kapitel der Grundlagen überspringen. Dennoch empfehle ich Ihnen, gerade diese Kapitel zumindest querzulesen. Vielleicht findet sich ja doch noch der eine oder andere Tipp, den Sie noch nicht kennen.
Dieses Buch ist für Menschen gedacht, welche gemeinsam im Team Software erstellen und betreiben, also nicht nur für Entwickler oder gar Berufseinsteiger, die sich neu mit dem Thema befassen. Es ist genauso geeignet für Entwickler mit vielen Jahren Erfahrung in anderen Versionsverwaltungen, die jetzt einen Umstieg zu Git machen.
In Büchern der »… für Dummies«-Reihe werden anspruchsvolle Themen verständlich präsentiert, ohne dass vom Leser übertrieben viel Vorwissen erwartet wird. Diesen bewährten Weg schlage ich auch in diesem Buch ein.
Trotzdem gehe ich davon aus, dass Sie sich mit dem von Ihnen verwendeten Betriebssystem auskennen – egal, ob Windows, Linux oder macOS.
An der einen oder anderen Stelle des Buches taucht auch etwas Quellcode auf. Das ist bei einer Quellcode-Verwaltung nicht ganz zu vermeiden. Die dazugehörigen Beispiele sind dann möglichst simpel gewählt: entweder in JavaScript oder C#. Da die meisten Leser Entwickler sein werden, sollte dies kein Problem darstellen. Aber selbst ohne Programmierkenntnisse dürften diese Abschnitte kein Problem für das Verständnis des Buches sein.
Dieses Buch ist in vier Teile gegliedert:
In Teil I lernen Sie die Grundlagen kennen. Ich erkläre, was Git ist, wie es funktioniert und wie man es installiert. Darüber hinaus erkläre ich Ihnen alles, was Sie für einen Einstieg auf Windows, Mac oder Linux benötigen und welche Dinge Sie installieren und einrichten müssen. Sie machen Ihre ersten praktischen Übungen und lernen die Grundlagen und wichtigsten Befehle kennen. Außerdem stelle ich in diesem Teil grafische Anwendungen vor, die Ihnen das Leben einfacher machen werden.
In Teil II geht es um die effektive Zusammenarbeit mit anderen Entwicklern. Ich gebe Ihnen in diesem Teil eine Einführung in die vier wichtigsten Git-Systeme für die Zusammenarbeit. Darüber hinaus lernen Sie, was Sie bei der Arbeit im Team beachten müssen und welche Richtlinien Sie einhalten sollten. Insbesondere Git-Workflows – also die genauen Arbeitsabläufe von Git in einem Team – werde ich detailliert erklären. Sie werden lernen, wie Sie mit Pull-Requests zusammenarbeiten und wie Sie Beiträge zu Open-Source-Projekten auf GitHub leisten können.
In Teil III werden ich bestimmte Themen vertiefen. Ich werde Ihnen genau zeigen, wie Git unter der Haube funktioniert. Sie werden die unterschiedlichen Merge-Strategien lernen, den Umgang mit Tags, Git-Hooks und signierten Commits.
Teil IV ist der Tipps-&-Tricks-Teil. Ich zeige Ihnen in Form von nützlichen Listen, wie Sie sich das Leben mit Git leichter machen können.
Im Buch finden Sie die folgenden Symbole. Einige kennen Sie ja schon, wenn Sie diese Einleitung gelesen haben.
Und jetzt wünsche ich Ihnen viel Spaß bei dem Einstieg in die spannende Welt der Git-Versionsverwaltung, und zwar nicht nur beim Lesen, sondern auch beim Ausprobieren!
Teil I