Git/Aufgaben/04_Branches.md

177 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 4. Arbeiten mit Branches
In dieser Aufgabe lernst du, wie man mit sogenannten **Branches** (also "Zweigen") arbeitet.
## 1. Aktuellen Branch anzeigen
```bash
git branch
```
Zeigt dir eine Liste aller lokalen Branches an. Der aktive Branch ist mit `*` markiert.
---
## 2. Neuen Branch erstellen
```bash
git branch <branch-name>
```
Beispiel:
```bash
git branch new-feature
```
Das erstellt den neuen Branch `new-feature`. Du bist aber noch **nicht** automatisch drin. Dafür:
---
## 3. In Branch wechseln
```bash
git switch <branch-name>
```
Oder mit älterer Git-Version:
```bash
git checkout <branch-name>
```
Beispiel:
```bash
git switch new-feature
```
Jetzt bist du in deinem neuen Branch und kannst rumprobieren, ohne dass `main` was davon mitbekommt.
---
## 4. Änderungen im Branch machen
Jetzt kannst du wie gewohnt arbeiten. Lass als Beispiel unsere Main.java ändern.
Öffne sie in einem Editor deiner wahl, zum Beispiel Vim
```bash
git add .
git commit -m "feat(ui): Neue Oberfläche angefangen"
```
Alle Commits landen **nur in deinem Branch**.
---
## 5. Zurück zu main
Wenn du zurück zu `main` willst:
```bash
git switch main
```
Wichtig: Deine Änderungen im Branch bleiben erhalten, solange du sie committet hast.
---
## 6. Branch in main mergen
Wenn du fertig bist und dein Branch stabil läuft, kannst du ihn in `main` zurückführen:
```bash
git switch main
git merge feature-ui
```
Wenn keine Konflikte auftreten: nice, du bist fertig ✅\
Falls doch: siehe nächstes Kapitel ("Merge-Konflikte") 😬
---
## 7. Lokale Branches löschen
Wenn du den Branch nicht mehr brauchst:
```bash
git branch -d <branch-name>
```
Beispiel:
```bash
git branch -d feature-ui
```
Keine Sorge: Das löscht **nur lokal** der Code bleibt in `main`, wenn du ihn vorher gemerged hast.
---
## 8. Remote-Branches
Wenn du deinen Branch pushen willst (z.B. damit andere dran weiterarbeiten können):
```bash
git push -u origin <branch-name>
```
Danach reicht in Zukunft ein einfaches `git push`.
Beispiel:
```bash
git push -u origin feature-ui
```
---
## 9. Remote-Branch löschen (Bonus)
Falls du einen Branch auch vom Server löschen willst:
```bash
git push origin --delete <branch-name>
```
Beispiel:
```bash
git push origin --delete feature-ui
```
---
## TL;DR: Wichtigste Befehle
```bash
git branch # zeigt alle Branches
git branch <name> # neuen Branch erstellen
git switch <name> # zu Branch wechseln
git merge <name> # Branch mergen
git branch -d <name> # Branch löschen
git push -u origin <name> # Branch auf Remote pushen
```
---
**Pro-Tipp:** Arbeite **immer in Branches**, wenn du Features entwickelst. Selbst kleine Änderungen du kannst sie easy rückgängig machen oder verwerfen, ohne dein Hauptprojekt zu zerschießen.
Git /
Aufgaben /
oder Abbrechen
Datei bearbeiten
Vorschau
Vorschau der Änderungen
---
Wenn du willst, kann ich auch direkt ein Übungsblatt dazu schreiben oder ein Cheatsheet für Branch-Workflows machen. Sag Bescheid!