Git - Technologie zum Speichern und Wiederherstellen jedes Moments des Projekts "Zeitschrank für Zeitreisen von Code"
Beim Entwickeln stößt man unweigerlich auf solche Momente:
"Warum funktioniert der Code von gestern heute nicht mehr?"
"Was habe ich gerade geändert?"
"Ich möchte vor der Entwicklung dieser Funktion sicher ein Backup machen..."
"Kann ich zu der Version von vor 3 Monaten zurückkehren?"
"Wer hat diese Datei wann geändert?"
Git ist genau dafür entstanden, um diese Probleme zu lösen.
Und Git kann wie folgt zusammengefasst werden.
Git = Zeitschrank, der jeden Moment des Codes aufzeichnet.
Sie können jederzeit in die Vergangenheit zurückkehren und
mit anderen teilen, ohne Konflikte zusammenarbeiten.
1. Git ist keine Technologie zum Speichern von Dateien
→ Es ist eine Technologie zum Speichern von "Veränderungen"
Computer speichern Dateien,
Git speichert Spuren von Veränderungen (Delta).
Angenommen, eine Datei wurde wie folgt geändert:
- name = "bamcoding"
+ name = "bamchi"
Git speichert nicht die gesamte Datei erneut.
Es protokolliert nur die Tatsache, dass diese Zeile so geändert wurde.
Dank dieser Methode ist Git:
extrem leicht
schnell
effizient
und kann Aufzeichnungen aus der Vergangenheit fast unbegrenzt speichern
Mit anderen Worten,
Git = Änderungsverfolgungssystem (Change Tracking System)
2. Kernstruktur der Metapher des "Zeitschrankes"
Die grundlegenden Konzepte von Git werden durch die Metapher des Schrankes klar strukturiert.
Repository (Speicherort) = Mein eigener Zeitschrank für Zeitreisen
Hier werden alle Versionen des Projekts gespeichert.
Commit = Moment, in dem der Schrank geschlossen und "klick" gemacht wird
Ein Snapshot wird gespeichert.
Branch = Eine weitere Zeitlinie im Schrank
Es öffnet eine neue Weltlinie für die Entwicklung einer anderen Version.
Merge = Akt des Zusammenführens von Zeitlinien
Verschiedene Realitäten werden zu einer vereint.
Checkout = Bewegen zu einem bestimmten Zeitpunkt
Springe zu gestern, letzten Monat, Zustand vor einem Jahr.
Wenn man diese Metapher versteht,
wird Git plötzlich einfach.
3. Warum man sich keine Sorgen macht, wenn der Code kaputt geht
→ "Weil immer alle früheren Versionen im Schrank bleiben"
Wer Git benutzt, gewinnt dieses Vertrauen.
"Was ist, wenn etwas schief geht? Dann gehe ich zurück."
Ein Commit zu machen bedeutet,
einen neuen Schrank zu öffnen.
So kann man leicht zurückgehen:
git checkout <Vergangenheitsversion>
Oder:
git revert
Diese Fähigkeit gibt Anfängern ein enormes Gefühl der Sicherheit.
Man hat keine Angst vor dem Scheitern,
und man kann neue Experimente frei durchführen.
Das beschleunigt wiederum das Lernen.
4. Der absolute Grund, warum Git in der Zusammenarbeit unerlässlich ist
→ Weil mehrere Personen in derselben Schublade jeweils eigene Schubladen erstellen können
Das wahre Potenzial von Branches.
Wenn zum Beispiel 5 Personen gleichzeitig arbeiten:
A arbeitet an der Anmeldungsfunktion
B an der Zahlungsfunktion
C an der UI-Änderung
D an der Fehlerbehebung
E an der Administratorfunktion
Es könnte zu Konflikten kommen, wenn sie alle am selben Projekt arbeiten...
Aber da jeder in seinem eigenen Branch (Zeitlinie) arbeitet,
mischen sich die Codes nicht.
Wenn alle Arbeiten abgeschlossen sind,
können sie zur richtigen Zeitpunkt mit einem Merge zusammengeführt werden.
Git = Technologie zur Trennung von Zeitlinien, die eine Zusammenarbeit ohne Konflikte ermöglicht
5. Kernfunktionen von Git, die Entwickler stärker machen
1) Jeder Moment wird protokolliert
Alle Änderungen an Dokumenten, Code und Projekten werden protokolliert.
2) Rückkehr in die Vergangenheit jederzeit möglich
Die Angst vor Fehlern verschwindet.
3) Experimente sind frei (Branches)
Es ist möglich, neue Funktionen zu testen.
4) Zusammenarbeit möglich
Dutzende von Personen können an einer Codebasis arbeiten.
5) Stabile Versionenveröffentlichung und -freigabe
80% der Schwierigkeiten bei der Veröffentlichung entstehen, weil man nicht weiß, welche Version vorliegt. Git löst dieses Problem vollständig.
6. Verbindung zwischen Git und Rails-Entwicklung
→ Rails ist ein schnelles und riskantes Entwicklungsframework
Git ist das Sicherheitsnetz, das mit diesem Risiko umgeht.
Rails ist schnell.
Mit der Geschwindigkeit kommen jedoch auch häufig Fehler vor.
Aber mit Git ist das kein Problem.
git commit -m "Initialversion speichern"
git checkout -b login-feature
# Funktion entwickeln...
git checkout main
git merge login-feature
Die Kombination aus der Geschwindigkeit von Rails und der Stabilität von Git
ergibt den stärksten Entwicklungszyklus.
7. In der Ära der KI wird Git noch mächtiger
Denn obwohl KI den Code schreiben kann,
KI kann
nicht selbst die Metadaten wie
"wo welche Version gespeichert ist"
oder "welche Änderung in welchem Branch stattgefunden hat"
ordnen.
Das ist die Rolle des menschlichen Entwicklers.
Selbst wenn wir KI den Code bearbeiten lassen,
ist es ohne Git gefährlich.
Denn durch Git können wir
die von KI vorgenommenen Änderungen überprüfen und
bei Bedarf rückgängig machen.
Fazit - Git ist kein einfaches Versionsverwaltungstool. Es ist eine Technologie, die die "gesamte Zeit" von Code und Projekten behandelt.
Git kann so zusammengefasst werden.
Git = Speichern aller Momente des Projekts und
ermöglicht es, jederzeit in die Vergangenheit zurückzukehren, ein Zeitschrank für Zeitreisen von Code.
Dank dieser Fähigkeit können Entwickler:
experimentieren
Fehler machen
korrigieren
zusammenarbeiten
die Version des Dienstes stabil halten
Das Erlernen von Git ist
wie das Erlernen der "physikalischen Gesetze" des Umgangs mit Code.