Rückblick auf 20 Jahre Git – immer noch seltsam, immer noch großartig
(blog.gitbutler.com)- Git ist ein Versionsverwaltungssystem, das vor 20 Jahren mit dem ersten Commit von Linus Torvalds begann
- Ursprünglich war es nur ein einfaches persönliches Projekt, entwickelte sich aber später zum weltweit am weitesten verbreiteten Versionsverwaltungssystem
- Der Autor ist Mitgründer von GitHub und war durch den Aufbau von Büchern und Community rund um Git tief an seiner Entwicklung beteiligt
- Anfangs war es nur ein einfaches Werkzeug zur Verwaltung von Verzeichnisinhalten, heute ist es ein zentrales Tool, das die Art der Softwareentwicklung verändert hat
Die Philosophie und Notwendigkeit von Git
- Git entstand in der Linux-Kernel-Community aus der Unzufriedenheit mit den Grenzen bestehender Versionsverwaltungstools
- Die frühere Art der Zusammenarbeit war verteilt und lokal geprägt, über Mailinglisten, Tarballs und Patch-Dateien
- Die damaligen SCM-Tools waren langsam, zentralisiert und ineffizient, weshalb ein auf Tarballs/Patches basierender Ansatz besser war
- Ein Tool namens BitKeeper war eine Alternative, doch wegen Lizenzproblemen begann die Entwicklung von Git
- Git wurde von Anfang an nicht als „Versionsverwaltungssystem“, sondern als Datenstruktur entworfen, um Patches und Tarballs besser zu handhaben
Der erste Commit von Git
- Der erste Commit war ein sehr grundlegendes Werkzeug zur Verfolgung von Verzeichnisinhalten
- Die damaligen Werkzeuge waren keine Befehle wie
git commit, sondern Low-Level-Datenbanktools wiewrite-tree,commit-treeusw. - Git besaß von Anfang an die folgenden Funktionen:
- Speichern des Arbeitsverzeichnisses im Cache (
update-cache), Umwandeln in einen Baum (write-tree) und Eintragen in die Datenbank - Speichern von Änderungen als Commit (
commit-tree) und damit Aufbau einer Historie - Lesen und Vergleichen von Datenbankobjekten mit
cat-file,read-tree,show-diff
- Speichern des Arbeitsverzeichnisses im Cache (
- Linus betrachtete Git nur als Backend-„plumbing tool“ und wollte, dass die UI extern entwickelt wird
Beispiele für Content-Verteilung mit Git
- Der Autor nutzte Git 2005 in einem Startup namens Reactrix zur Verteilung digitaler Werbeinhalte
- Hunderte digitale Displays mussten jeweils unterschiedliche Kombinationen von Werbung erhalten, und Gits Content-Addressing löste dies effizient
- Das war ein kreatives Beispiel dafür, Git nicht für Codeverwaltung, sondern als Werkzeug zur Content-Verteilung einzusetzen
- Nick Hengeveld, einer der wichtigsten Mitwirkenden am frühen Git-Projekt, ergänzte Funktionen wie SSL und parallele HTTP-Übertragung
- Diese Erfahrung führte zur Erstellung von Git-Dokumentation, Websites und Büchern und mündete schließlich in GitHub
Die Entwicklung von Git-Befehlen und User-Tools
- In den frühen Tagen bestanden alle Git-Befehle aus skriptbasierten Low-Level-Tools und sahen noch ganz anders aus als heute
- Befehle wie
git log,git rebaseundgit commitwaren anfangs einfache Shell-Skripte und entwickelten sich nach und nach zu ihrer heutigen Form
Frühe Version von git log
git logwar ein einfaches Skript in der Formgit-rev-list --pretty HEAD | lessrev-listist ein Tool zur Ausgabe von Commit-IDs, das bis heute existiert
Die Entstehung von git rebase
- Das Konzept „rebase“ entstand 2005 in einem E-Mail-Austausch zwischen Linus und Junio Hamano
- Junios Arbeitsweise bestand darin, den bisherigen HEAD zu verwerfen und die Arbeit auf Basis eines neuen HEAD fortzusetzen; dafür verwendete man den Ausdruck „rebase“
- Daraus entwickelte sich der
git rebase-Befehl, wie wir ihn heute kennen
Der Ursprung von Octocat
- Octocat, das Symbol von GitHub, nahm seine Idee aus der Git-Strategie des „octopus merge“
- Die Strategie, mehrere Branches gleichzeitig zusammenzuführen, wurde „octopus“ genannt; davon inspiriert entstand in den frühen Tagen von GitHub die Figur Octocat
Gegenwart und Zukunft von Git
- Der Autor nutzt Git immer noch seinem ursprünglichen Zweck entsprechend als „stupid content tracker“
- Das Projekt GitButler nutzt Git, um die Historie von Projekten nachzuverfolgen und aufzuzeichnen
- Git ist weiterhin ein leistungsfähiges System zur Content-Verfolgung und verteilten Zusammenarbeit und kann auch künftig auf vielfältige Weise eingesetzt werden
- Alles Gute zum Geburtstag, Git. Immer noch seltsam, immer noch großartig
6 Kommentare
Alles Gute zum 20. Geburtstag, Git.
Herzlichen Glückwunsch
Alles Gute zum Geburtstag. Hör auf den Onkel und bleib lange, lange gesund.
Alles Gute zum Geburtstag ^^
Das ist irgendwie ein seltsam mitreißender Post.
Hacker-News-Kommentare
Die Geschichte über die Ursprünge von Git neigt dazu, Linus fast wie einen Propheten darzustellen
Um 2002 hatte ich die Idee, jeden Teil eines Projekts mit einem eindeutigen Hash-Code zu versehen
Ich begann, Git als Alternative zu ClearCase zu verwenden
Es überrascht mich, dass Git erst 20 Jahre alt ist
Es war interessant, den historischen Kontext zu erfahren
Ich wollte ein effizientes Werkzeug für eine Tarball-History-Datenbank bauen und hatte nicht die Absicht, ein Versionsverwaltungssystem zu entwickeln
Ich habe erfahren, dass man Commits mit SSH-Schlüsseln signieren kann
Danke für den nützlichen Artikel; ich empfehle außerdem ein Repository, das eine Einführung in die interne Struktur von Git enthält
Ich fand die Meinung interessant, dass jemand einen Blogbeitrag über Zusammenarbeit über Mailinglisten schreiben möchte
Von den vielen Versionskontrollsystemen hat Git die schlechteste Usability, ist aber trotzdem mein Lieblingssystem