chore: initial training material setup
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
# 🌿 Modul 03 – Branches
|
||||
|
||||
Branches sind das Herzstück von Git. Sie ermöglichen es dir, an neuen Features zu arbeiten, ohne den stabilen Hauptcode zu verändern.
|
||||
|
||||
---
|
||||
|
||||
## Was ist ein Branch?
|
||||
|
||||
Ein Branch ist ein **beweglicher Zeiger** auf einen Commit. Wenn du auf einem Branch einen neuen Commit machst, rückt der Zeiger automatisch vorwärts.
|
||||
|
||||
Das klingt abstrakt – stell dir vor:
|
||||
|
||||
- `main` ist dein **veröffentlichter Stand** (funktioniert immer)
|
||||
- Du erstellst einen Branch `feature/begruessung` für neue Arbeit
|
||||
- Dort probierst du aus, änderst, brichst ab – `main` bleibt unberührt
|
||||
- Wenn du fertig bist, **mergst** du den Feature-Branch zurück in `main`
|
||||
|
||||
---
|
||||
|
||||
## Branch-Workflow visualisiert
|
||||
|
||||
```mermaid
|
||||
gitGraph
|
||||
commit id: "Projekt start"
|
||||
commit id: "README fertig"
|
||||
branch feature/begruessung
|
||||
checkout feature/begruessung
|
||||
commit id: "hallo.txt angelegt"
|
||||
commit id: "Begrüßung verbessert"
|
||||
checkout main
|
||||
merge feature/begruessung id: "Feature gemergt"
|
||||
```
|
||||
|
||||
Auf `main` hat sich nichts verändert, solange du auf `feature/begruessung` gearbeitet hast. Erst beim Merge kommen die Änderungen zusammen.
|
||||
|
||||
---
|
||||
|
||||
## Befehle im Überblick
|
||||
|
||||
### Branch anlegen und wechseln
|
||||
|
||||
```bash
|
||||
git branch feature/begruessung
|
||||
git switch feature/begruessung
|
||||
```
|
||||
|
||||
Oder in einem Schritt:
|
||||
|
||||
```bash
|
||||
git switch -c feature/begruessung
|
||||
```
|
||||
|
||||
### Aktuellen Branch anzeigen
|
||||
|
||||
```bash
|
||||
git branch
|
||||
```
|
||||
|
||||
```text
|
||||
* feature/begruessung
|
||||
main
|
||||
```
|
||||
|
||||
Das Sternchen `*` zeigt, auf welchem Branch du gerade bist.
|
||||
|
||||
### Alle Branches anzeigen (auch remote)
|
||||
|
||||
```bash
|
||||
git branch -a
|
||||
```
|
||||
|
||||
### Zurück zu main wechseln
|
||||
|
||||
```bash
|
||||
git switch main
|
||||
```
|
||||
|
||||
### Branch mergen
|
||||
|
||||
```bash
|
||||
git switch main
|
||||
git merge feature/begruessung
|
||||
```
|
||||
|
||||
```text
|
||||
Updating a3f9c12..d4e5f67
|
||||
Fast-forward
|
||||
hallo.txt | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
create mode 100644 hallo.txt
|
||||
```
|
||||
|
||||
### Branch löschen (nach dem Merge)
|
||||
|
||||
```bash
|
||||
git branch -d feature/begruessung
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Unterschied sehen
|
||||
|
||||
Bevor du mergst, kannst du sehen, was sich auf dem Feature-Branch geändert hat:
|
||||
|
||||
```bash
|
||||
git diff main..feature/begruessung
|
||||
```
|
||||
|
||||
Oder alle Branches in der Übersicht:
|
||||
|
||||
```bash
|
||||
git log --all --oneline --graph
|
||||
```
|
||||
|
||||
```text
|
||||
* d4e5f67 (feature/begruessung) Begrüßung verbessert
|
||||
* c3d4e56 hallo.txt angelegt
|
||||
* b7e2f45 (HEAD -> main) README fertig
|
||||
* a3f9c12 Projekt start
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 Jetzt bist du dran!
|
||||
|
||||
Weiter zur [Aufgabe](aufgabe.md).
|
||||
|
||||
---
|
||||
|
||||
**Weiter geht's mit:** [04 – Merge & Konflikte](../04-merge-und-konflikte/README.md)
|
||||
Reference in New Issue
Block a user