# 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 ``` ### 5. Merge abschließen ```bash git commit ``` Git öffnet einen Editor mit der Merge-Nachricht. Du kannst sie anpassen oder einfach speichern.