Files
jellyfin-plugin-media-bar-e…/git_cheat_sheet.md
CodeDevMLH eec8f23968 add doc
2026-01-06 02:20:20 +01:00

3.3 KiB
Raw Blame History

🚀 Git Cheat Sheet: Branches, Merge, Rebase & VS Code

🌳 Branches (Zweige)

  • main → Stabiler Stand, Production-ready (Deployment).
  • dev → Aktive Entwicklung, Sammelbecken für Features.

🛠 Zusammenführen von Änderungen

Git Merge

Führt zwei Zweige zusammen. Git sucht den letzten gemeinsamen Basispunkt und erstellt einen neuen Merge-Commit.

git checkout dev
git merge main
Details
Wann? In Team-Branches, bei bereits gepushten Branches, wenn Stabilität wichtiger als eine saubere History ist.
Vorteile Sicher, einfach nachvollziehbar, schreibt die History nicht um.
Nachteile Die History kann bei vielen Merges unübersichtlich ("Spaghetti-Graph") werden.

Git Rebase

Setzt deine Commits neu auf die Spitze eines anderen Branches. Die Commit-IDs werden dabei neu geschrieben.

git checkout dev
git rebase main
Details
Wann? In lokalen Feature-Branches (bevor sie geteilt werden), um die History sauber zu halten.
Vorteile Erzeugt eine perfekt lineare, leicht lesbare History.
Nachteile ⚠️ Gefährlich auf geteilten/öffentlichen Branches. Konflikte müssen ggf. für jeden einzelnen Commit gelöst werden.

📦 Temporäres Speichern & Spezialbefehle

Stash (Das "Regal")

Speichert uncommitted Changes temporär, um das Arbeitsverzeichnis sauber zu machen, ohne zu committen.

git stash        # Änderungen "parken".
git stash pop    # Änderungen zurückholen und Stash leeren.

Wann? Wenn du schnell den Branch wechseln musst, aber deine Arbeit noch nicht fertig ist.

Cherry-pick

Kopiert einen ganz gezielten Commit von einem Branch in deinen aktuellen.

git cherry-pick <commit-hash>

Wann? Wenn ein Bugfix auf dem falschen Branch gelandet ist oder du nur eine einzige Funktion aus einem Feature-Branch brauchst.


🔄 Checkout & Switch

git checkout dev      # oder git switch dev  Wechselt zum Branch.
git checkout -f dev   # Force Checkout: Wechselt den Branch und verwirft alle ungespeicherten lokalen Änderungen unwiderruflich! ⚠️

💻 VS Code Git-Optionen (UI)

VS Code bietet beim Branch-Wechsel oft drei intelligente Optionen an:

  • Migrate Changes
    • Nimmt deine aktuellen Änderungen einfach mit in den neuen Branch.
    • (Intern: stash → switch → stash pop).
  • Stash & Checkout
    • Parkt deine Änderungen sicher im Stash und wechselt den Branch. Die Änderungen bleiben im Stash, bis du sie manuell wieder herausholst.
  • Force Checkout ⚠️
    • Wechselt den Branch und löscht deine aktuellen, ungespeicherten Änderungen. Nur nutzen, wenn die Arbeit weggeworfen werden kann.

🔄 Typischer Sync-Workflow

Um den Entwicklungs-Branch aktuell zu halten, nachdem dev in main gemerged wurde:

  1. Auf dev entwickeln.
  2. Merge dev → main für das Release.
  3. Zurück auf dev wechseln: bash git checkout dev git merge main # (oder rebase), um den neuesten Stand vom Main wieder in Dev zu haben.

🧠 Merksätze

  • Merge = Historien verbinden (Sicher & Dokumentiert).
  • Rebase = Historie neu schreiben (Linear & Sauber).
  • Stash = "Ich parke das mal kurz hier."
  • Migrate Changes = Sicherer Branch-Wechsel mit "Gepäck".