Programmierung · Werkzeuge · Versionskontrolle
Was ist Git?
Wenn du Code schreibst, begegnest du Git schon am ersten Tag. Es ist das Werkzeug, das nahezu jedes Softwareprojekt zur Verfolgung von Änderungen nutzt, und das Fundament unter GitHub, GitLab und dem modernen Entwicklungs-Workflow. Dieser Leitfaden erklärt, was Git ist, die Handvoll Konzepte, die es einleuchtend machen, warum es zählt und worin es sich von GitHub unterscheidet.
Die kurze Definition
Git ist ein verteiltes Versionskontrollsystem: Es zeichnet die Änderungshistorie einer Reihe von Dateien auf, damit du sie nachvollziehen, verzweigen, zusammenführen, zusammenarbeiten und zurückgehen kannst. 2005 von Linus Torvalds zur Verwaltung des Linux-Kernels entwickelt, ist es heute der De-facto-Standard. „Verteilt“ bedeutet, dass jede Kopie des Projekts ihre vollständige Historie trägt — du kannst vollständig offline arbeiten, committen und die Historie einsehen.
Die grundlegenden Konzepte
- Repository (Repo) — der Projektordner samt seiner gesamten Historie, gespeichert in einem versteckten Verzeichnis
.git. - Commit — eine gespeicherte Momentaufnahme deiner Dateien zu einem bestimmten Zeitpunkt, mit einer Nachricht, die die Änderung beschreibt. Die Historie ist eine Kette von Commits.
- Branch (Zweig) — ein beweglicher Zeiger, mit dem du eine Funktion isoliert entwickeln kannst, ohne die Hauptlinie (meist
main) zu stören. - Merge (Zusammenführen) — die Änderungen eines Branches in einen anderen kombinieren.
- Remote (entfernt) — eine geteilte Kopie des Repositories, die anderswo gehostet wird (z. B. auf GitHub), zu der du
pushst und von der dupullst.
Der tägliche Workflow
Die Schleife, die die meisten Entwickler dutzende Male am Tag durchlaufen:
git clone <url> # copy a repository locally
# ...edit files...
git add . # stage the changes you want to save
git commit -m "Add login form" # save a snapshot with a message
git push # send your commits to the shared remote Um an etwas Neuem zu arbeiten, ohne die Hauptlinie zu beschädigen, verzweigst du: git checkout -b my-feature, committest dort und führst dann mit git merge (oft über einen Pull Request) zurück in main zusammen. Um die Arbeit anderer zu holen, machst du git pull.
Warum Git zählt
- Historie und Rückgängigmachen — jede Änderung wird aufgezeichnet, du siehst also, wer was wann und warum geändert hat, und kannst einen Fehler zurücknehmen.
- Zusammenarbeit — viele Personen können parallel auf Branches am selben Projekt arbeiten und anschließend sicher zusammenführen.
- Sicheres Experimentieren — verzweige, probiere etwas aus, verwirf es, wenn es scheitert — die Hauptlinie bleibt unangetastet.
- Es ist überall — Open Source, Unternehmen, CI/CD-Pipelines und das Deployment setzen alle Git voraus.
Git vs. GitHub
Die beiden werden ständig verwechselt. Git ist das Versionskontroll-Werkzeug, das auf deinem Rechner läuft. GitHub (wie GitLab oder Bitbucket) ist ein Hosting-Dienst, der Git-Repositories online speichert und Funktionen für die Zusammenarbeit ergänzt — Pull Requests, Issues, Zugriffskontrolle, CI. Du kannst Git ganz ohne GitHub-Konto nutzen; GitHub ist ein beliebter Ort, um ein Git-Remote abzulegen, nicht Git selbst.
Die ehrliche Lernkurve
Git ist mächtig, und sein Befehlssatz kann anfangs verwirrend wirken — Merges können in Konflikt geraten, und ein paar Befehle können die Historie auf eine Weise umschreiben, die Einsteiger überrascht. Die gute Nachricht: 90 % der täglichen Arbeit nutzen nur clone, add, commit, push, pull und branch. Beherrsche diese und lerne den Rest (rebase, stash, reset), wenn du ihn wirklich brauchst.
FAQ
Ist Git dasselbe wie GitHub? Nein. Git ist die Versionskontroll-Software auf deinem Computer; GitHub ist ein Online-Dienst, der Git-Repositories hostet und Werkzeuge für die Zusammenarbeit ergänzt. Git funktioniert ohne GitHub.
Was ist ein Commit? Eine gespeicherte Momentaufnahme deines Projekts zu einem bestimmten Zeitpunkt, mit einer Nachricht, die beschreibt, was sich geändert hat. Die Historie eines Projekts ist eine Folge von Commits.
Muss man die Kommandozeile benutzen? Nein — Editoren (VS Code) und grafische Clients umhüllen Git, und die meisten IDEs integrieren es — aber die Kommandozeile ist universell und lohnt sich zu lernen, da jedes Tutorial und jedes CI-System sie spricht.
Was bedeutet „verteilt“? Jeder Klon eines Git-Repositories enthält die vollständige Historie, du kannst also offline committen, verzweigen und die Historie durchsehen. Es gibt keine einzelne zentrale Kopie, von der deine Arbeit abhängt.
Git verfolgt den Code; Algorithmen und APIs sind das, was dieser Code ausdrückt. Stöbere durch weitere klare Erklärungen in unserem Leitfaden-Index.