Was Git löst
Das Problem
Abschnitt betitelt „Das Problem“Jeder kennt Ordner wie diesen:
bericht.docxbericht_v2.docxbericht_v2_final.docxbericht_v2_final_korrigiert.docxbericht_FINAL_wirklich.docxWelche Version ist aktuell? Was wurde zwischen v2 und final geändert? Wer hat es geändert? Und wenn zwei Personen gleichzeitig arbeiten: Wie führt man das zusammen?
Git beantwortet alle diese Fragen. Es speichert nicht Kopien von Dateien, sondern eine Geschichte von Änderungen: Wer hat wann was geändert und warum. Jeder Stand ist jederzeit wiederherstellbar.
Die Begriffe
Abschnitt betitelt „Die Begriffe“| Begriff | Bedeutung |
|---|---|
| Repository (Repo) | Ein Projektordner, den Git überwacht. Die ganze Geschichte liegt im Unterordner .git. |
| Commit | Ein gespeicherter Stand mit Beschreibung, Autor und Zeitstempel. Ein Schnappschuss des ganzen Projekts. |
| Working Directory | Die Dateien, wie du sie gerade siehst und bearbeitest. |
| Staging Area (Index) | Der Wartebereich: Was hier liegt, kommt in den nächsten Commit. |
| Branch | Eine Entwicklungslinie. main ist die Hauptlinie, für jede Aufgabe gibt es einen eigenen Branch. |
| Remote | Die Kopie des Repos auf einem Server, hier GitLab. Heisst standardmässig origin. |
| Clone | Eine vollständige Kopie eines Remote-Repos auf deinem Rechner. |
| Push / Pull | Commits zum Server hochladen beziehungsweise vom Server holen. |
| Merge Request | Die Bitte, einen Branch in main zu übernehmen. Mit Review, Kommentaren und automatischen Checks. |
Das Modell
Abschnitt betitelt „Das Modell“Drei Bereiche auf deinem Rechner, einer auf dem Server:
flowchart LR
WD[Working Directory<br/>deine Dateien] -->|git add| ST[Staging Area<br/>für den nächsten Commit]
ST -->|git commit| LR[Lokales Repository<br/>Geschichte]
LR -->|git push| RM[(Remote<br/>GitLab)]
RM -->|git pull| WD
Ein Commit ist wie ein Speicherpunkt in einem Spiel. Du entscheidest selbst, wann du einen setzt. Gute Praxis: Nach jedem abgeschlossenen Schritt, der für sich funktioniert.
Branches
Abschnitt betitelt „Branches“Ein Branch ist eine Abzweigung in der Geschichte. Du arbeitest auf einem eigenen Branch, bis die Aufgabe fertig ist, dann wird er in main zusammengeführt (merge). So bleibt main immer in einem sauberen Zustand.
gitGraph
commit id: "Kurs angelegt"
commit id: "Modul 3 ergänzt"
branch lab/04-rechte
checkout lab/04-rechte
commit id: "Protokoll Rechte"
commit id: "Frage 3 beantwortet"
checkout main
merge lab/04-rechte id: "MR !12 gemergt"
Selbstcheck · 3 Fragen