48 lines
3.5 KiB
Markdown
48 lines
3.5 KiB
Markdown
# 💡Git-Cheat Sheet mit den wichtigsten Commit-Strategien als Übersicht
|
||
|
||
## 🧭 **Commit-Strategien in Git – Entscheidungsbaum**
|
||
|
||
```plaintext
|
||
┌───────────────────────────────┐
|
||
│ Möchtest du Commit speichern? │
|
||
└──────────────┬────────────────┘
|
||
│
|
||
┌─────────────▼──────────────┐
|
||
│ Lokaler Commit │
|
||
└─────────────┬──────────────┘
|
||
│
|
||
┌───────────────▼───────────────────────────┐
|
||
│ Ist es eine Korrektur des letzten Commit? │
|
||
└─────┬─────────────────┬───────────────────┘
|
||
│ │
|
||
┌─────────────▼───────┐ ┌─────▼──────────────┐
|
||
│ `--amend` verwenden │ │ Normaler Commit │
|
||
└─────────────────────┘ └────────────────────┘
|
||
```
|
||
|
||
🔀 Möchtest du zwei Branches zusammenführen?
|
||
|
||
```plaintext
|
||
┌─────────────────┬───────────────┐
|
||
│ │ │
|
||
┌─────▼────────┐ ┌──────▼───────┐ ┌─────▼────────┐
|
||
│ Fast-Forward │ │ Merge-Commit │ │ Rebase │
|
||
└──────────────┘ └──────────────┘ └──────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 🧪 **Wann nutzt man welche Strategie?**
|
||
|
||
| Strategie | Use Case | Kommandos |
|
||
|----------------|---------------------------------------------------|------------------------------------------------|
|
||
| Commit | Lokale Änderungen speichern | `git commit -m "Message"` |
|
||
| Amend | Letzten Commit ändern/ergänzen | `git commit --amend` |
|
||
| Merge Commit | Branches zusammenführen mit Historie | `git merge <branch>` |
|
||
| Fast-Forward | Branch einfach „vorziehen“ | `git merge --ff-only <branch>` |
|
||
| Rebase | Änderungen auf andere Spitze übertragen | `git rebase <branch>` oder `git pull --rebase` |
|
||
| Squash | Mehrere Commits zusammenfassen | `git rebase -i HEAD~n` → `squash` |
|
||
| Cherry-Pick | Einzelnen Commit übernehmen | `git cherry-pick <hash>` |
|
||
| Revert | Commit rückgängig machen mit neuem Commit | `git revert <hash>` |
|
||
| Stash & Commit | Änderungen zwischenspeichern und später committen | `git stash` → `git stash pop` → `commit` |
|