Git/Script/04_Branches.md

88 lines
3.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden 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.

# Branches
## Was sind Branches?
Branches (Zweige) ermöglichen es, parallel zur Hauptentwicklungslinie (z.B. `main`) zu arbeiten, ohne diese direkt zu beeinflussen. Sie sind ideal, um neue Features zu entwickeln, Fehler zu beheben oder alternative Ideen auszuprobieren.
Es ist möglich jederzeit zwischen verschiedenen Branches wechseln und später Änderungen zusammenführen. Oft folgt die Branch-Struktur einem bewährten Modell:Es gibt einen `main`-Branch, der den stabilen, produktionsreifen Stand des Projekts enthält.
Daneben existiert ein `dev`- oder `develop`-Branch, auf dem aktiv entwickelt wird.
Alle neuen Feature-Branches werden zunächst in diesen Entwicklungs-Branch gemerged.
Sobald der dev-Branch einen stabilen und fehlerfreien Zustand erreicht hat, wird er in den `main`-Branch übernommen.
## Wofür verwendet man Branches?
- **Feature-Entwicklung**: Für neue Funktionen ohne Risiko für den Hauptcode
- **Bugfixes**: Fehlerbehebungen getrennt vom Hauptbranch
- **Experimente**: Neue Ideen ausprobieren, ohne das Hauptprojekt zu gefährden
- **Main-Branch**: Einen Funktionsfähigen und getetesten branch
## Branch erstellen
Ein neuer Branch wird mit folgendem Befehl erstellt:
```bash
git branch neuer-branchname
```
## In einen Branch wechseln
Um in einen Branch zu wechseln:
```bash
git switch neuer-branchname
```
## Branch erstellen **und** direkt wechseln:
```bash
git switch -c neuer-branchname
```
## Änderungen zusammenführen (Merge)
Wenn ein Branch fertig ist, kann er in einen anderen Branch (z.B. `main`) gemerged werden (man muss ich auf dem branch befinden in den der andere branch gemerged werden soll):
```bash
git checkout main
git merge neuer-branchname
```
## Konflikte beim Merge
Wenn zwei Branches dieselben Zeilen einer Datei geändert haben, entsteht ein **Merge-Konflikt**. Git zeigt diese Konflikte in der Datei selbst an, und du musst sie manuell auflösen, bevor du committen kannst.
## Branch löschen (optional)
Nach dem Merge kann der Branch gelöscht werden:
```bash
git branch -d neuer-branchname
```
---
## Git Merge-Konflikte verstehen und lösen
Merge-Konflikte entstehen, wenn zwei Branches dieselben Zeilen in einer Datei unterschiedlich verändert haben. Git kann diese Konflikte nicht automatisch auflösen das musst du manuell machen.
---
### 1. Konflikt erkennen
Nach einem Merge-Versuch zeigt Git dir betroffene Dateien:
```bash
git status
```
### 2. Konflikt in der Datei ansehen
Git markiert den Konflikt in der Datei mit diesen Symbolen:
```text
<<<<<<< HEAD
Deine Änderung aus dem aktuellen Branch
=======
Änderung aus dem gemergten Branch
>>>>>>> feature-branch
```
### 3. Konflikt lösen
Bearbeite die Datei so, dass du dich für eine Version entscheidest oder beide kombinierst. Entferne danach alle Konfliktmarkierungen.
### 4. Gelöste Datei zurückmelden
```bash
git add <dateiname>
```
### 5. Merge abschließen
```bash
git commit
```
Git öffnet einen Editor mit der Merge-Nachricht. Du kannst sie anpassen oder einfach speichern.