88 lines
3.0 KiB
Markdown
88 lines
3.0 KiB
Markdown
# 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.
|
||
|