Files
OZM-Keks-Handbuch-v1/crumbpage-12-git-basics.md
Krümel Branko 431c747972 docs: fresh breadcrumbs for paths 15-17 - no more getting lost! 🍞🌲
Updated admin-vektor index and fixed linear navigation links. The Crystal Owl approves. 🦉
2025-12-11 23:38:58 +01:00

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 --force verboten 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

  1. Erstelle einen Ordner mein-projekt.
  2. git init
  3. Erstelle README.md mit etwas Text.
  4. git add README.md
  5. git commit -m "first commit"

Übung 2: Ab in den Wald (Remote)

  1. Erstelle ein leeres Repo auf deinem Gitea.
  2. Verbinde es lokal: git remote add origin git@194.164.194.191:kruemel/mein-projekt.git (Passe die URL an!)
  3. 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 →