Git ist das Werkzeug, mit dem Entwicklerinnen und Entwickler jede Änderung an einem Projekt festhalten, zu früheren Ständen zurückkehren und mehrere Stände nebeneinander führen. Es läuft auf dem eigenen Rechner und braucht dafür keine Verbindung. Geschrieben hat es Linus Torvalds 2005 für die Arbeit am Linux-Kern.
- Git
Das Werkzeug, das jede Änderung an einem Projekt festhält und mehrere Stände nebeneinander erlaubt.
Beispiel: „Das Projekt liegt in Git, jede Änderung ist mit Datum und Begründung nachvollziehbar.“Auch: Versionsverwaltung, Versionskontrolle. Git ist die heute verbreitetste, aber nicht die einzige; ältere Projekte benutzen noch Subversion.
Abgrenzung zu GitHub: Git ist das Werkzeug, GitHub ein Dienst, der Repositorys im Netz hält und eine Oberfläche dazu anbietet. GitLab und Bitbucket tun dasselbe.
Die vier Orte, auf denen Git beruht
Fast jeder Befehl bewegt etwas zwischen diesen vier Orten. Im Arbeitsverzeichnis liegen die Dateien, an denen du gerade arbeitest. Die Staging Area hält fest, was in den nächsten Schritt soll. Das lokale Repository enthält die Geschichte des Projekts, und das Remote ist derselbe Stand auf einem Server, zu dem alle Zugang haben.
Wer diese Aufteilung einmal verstanden hat, versteht die Befehle als Richtungen. Alles andere sind Feinheiten.
Die Befehle, die den Anfang ausmachen
Befehl | Was er tut | Richtung |
|---|---|---|
holt ein Repository zum ersten Mal auf den eigenen Rechner | vom Remote | |
add | merkt Änderungen für den nächsten Commit vor | ins Staging |
schreibt die vorgemerkten Änderungen in die Geschichte | ins lokale Repository | |
schiebt die eigenen Commits zum gemeinsamen Stand | zum Remote | |
holt den Stand des Remote, ohne etwas zu verändern | vom Remote | |
holt den Stand und führt ihn mit dem eigenen zusammen | vom Remote |
Nur push und fetch verlassen den eigenen Rechner. Alles andere lässt sich ohne Verbindung tun, und genau das unterscheidet Git von älteren Werkzeugen.
Warum der Einstieg in Git als schwer gilt
Weil die Begriffe aus der Sicht des Werkzeugs benannt sind und nicht aus der Sicht dessen, der damit arbeitet. „Staging Area“ sagt nichts über ihren Zweck, und dass `pull` zwei Dinge auf einmal tut, steht nirgends im Namen.
Dazu kommt, dass fast jedes Problem mehrere Lösungswege hat und die Suche im Netz meist den kompliziertesten zuerst anzeigt. Für den Alltag reichen die sechs Befehle aus der Tabelle; alles Weitere kommt, wenn es gebraucht wird.