Updated admin-vektor index and fixed linear navigation links. The Crystal Owl approves. 🦉
3.5 KiB
3.5 KiB
🧭 Crumbpage 12: Git - Das Gedächtnis des Waldes
Subtitle: Zeitmaschinen bauen und Welten teilen
Pfad: 12 von 12
Schwierigkeit: ⭐⭐⭐⭐ (4/5)
Zeit: ~2 Stunden
Voraussetzungen: Pfad 4 (Editoren) & Pfad 8 (SSH Keys)
"Wer seine Geschichte nicht kennt, ist verdammt, sie zu wiederholen. Git vergisst nichts." 🌲
📋 Was du in diesem Pfad lernst
✓ Was ist Version Control? (Zeitmaschine)
✓ Repository, Commit, Push, Pull
✓ .gitignore (Was im Wald bleibt)
✓ Gitea/GitHub (Der zentrale Sammelplatz)
✓ SSH Keys für Git nutzen
🎯 Lernziele
Nach diesem Pfad kannst du:
- Ein Verzeichnis in ein Git-Repo verwandeln (
git init) - Änderungen speichern (
git commit) - Deinen Code auf deinen Gitea-Server hochladen (
git push) - Verstehen, warum
git push --forceverboten ist
🌱 Grundkonzepte
Konzept 1: Die Zeitmaschine
Stell dir vor, du schreibst ein Buch.
- Ohne Git:
buch_final.txt,buch_final_echt.txt,buch_final_v2.txt🤯 - Mit Git:
buch.txt(und Git merkt sich jede Änderung in einer Datenbank).
Konzept 2: Lokal vs. Remote
- Lokal: Dein Laptop (Dein Rucksack).
- Remote: Dein Gitea/GitHub (Das Basislager). Du arbeitest lokal und "pushst" (schiebst) Änderungen zum Basislager, damit andere sie "pullen" (ziehen) können.
🔧 Praktische Befehle
Befehl 1: git init & git clone
# Neues Repo starten
$ git init
# Vorhandenes Repo herunterladen
$ git clone git@dein-gitea.com:user/repo.git
Befehl 2: Der Workflow (The Happy Path)
# 1. Status prüfen (Was hat sich geändert?)
$ git status
# 2. Änderungen vormerken (Staging)
$ git add datei.txt
# oder alles: git add .
# 3. Änderungen speichern (Commit)
$ git commit -m "feat: habe kapitel 1 geschrieben"
# 4. Hochladen (Push)
$ git push origin main
Befehl 3: git log (Geschichtsbuch)
$ git log --oneline
# Zeigt die letzten Änderungen kurz an.
💡 Best Practices
DO ✅
# 1. Sprechende Commit-Messages
# Gut: "fix: login bug in auth.py"
# Schlecht: "fix", "update", "wip"
# 2. .gitignore nutzen
# Passwörter, Logs und temporäre Dateien gehören NICHT in Git!
# Erstelle eine Datei namens .gitignore und schreibe rein:
# *.log
# .env
DON'T ❌
# 1. Secrets committen
# Wenn du ein Passwort committest, ist es für immer in der History.
# Auch wenn du es löschst! (Man kann in der Zeit zurückreisen).
# 2. Auf dem Server arbeiten
# Code schreibt man lokal, pusht ihn, und pullt ihn auf dem Server.
# Nicht auf dem Server via nano programmieren (außer für Hotfixes).
🎓 Hands-On Übungen
Übung 1: Dein erstes Repo
- Erstelle einen Ordner
mein-projekt. git init- Erstelle
README.mdmit etwas Text. git add README.mdgit commit -m "first commit"
Übung 2: Ab in den Wald (Remote)
- Erstelle ein leeres Repo auf deinem Gitea.
- Verbinde es lokal:
git remote add origin git@194.164.194.191:kruemel/mein-projekt.git(Passe die URL an!) git push -u origin main
Frage: Hat es nach einem Passwort gefragt?
- Ja: Deine SSH Keys sind noch nicht im Gitea hinterlegt oder falsch konfiguriert.
- Nein: Wuhuuu! Deine Keys funktionieren! 🔑✨
🦉 Crystal Owl's Weisheit
"Code, der nicht in Git ist, existiert nicht. Code, der nicht gepusht ist, ist nur eine Illusion."
Navigation:
← Zurück: First Access | Weiter: Pipes & Filters →