Update release automation to ignore all markdown files
This commit is contained in:
@@ -7,7 +7,7 @@ on:
|
|||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '.gitea/**'
|
- '.gitea/**'
|
||||||
- '.github/**'
|
- '.github/**'
|
||||||
- 'README.md'
|
- '*.md'
|
||||||
- 'jellyfin.ruleset'
|
- 'jellyfin.ruleset'
|
||||||
- '.gitignore'
|
- '.gitignore'
|
||||||
- '.editorconfig'
|
- '.editorconfig'
|
||||||
|
|||||||
106
git_cheat_sheet.md
Normal file
106
git_cheat_sheet.md
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
# 🚀 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**.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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".
|
||||||
Reference in New Issue
Block a user