From 156389dccc70f9336eb786a74ece4db31eaa6fd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Tr=C3=B6ger?= Date: Mon, 10 Aug 2026 07:19:05 +0200 Subject: [PATCH] docs: Merge statt Rebase als Regel im Git-Workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ein Rebase spielt jeden alten Commit einzeln neu ein und erzeugt Konflikte, die inhaltlich nicht bestehen. Konkret im dotfiles-Repo: Commit 55d9733 vom 05.07. setzt in settings.json den Modellnamen und ergaenzt tui. Auf origin/main stand beides schon, nur an verschobener Position — der Rebase konnte den alten Patch nicht mehr zuordnen und meldete Konflikt, obwohl die Datei in HEAD und origin/main byte-identisch war. Zusaetzlich haette er vier vorhandene Merge-Commits umgeschrieben. Co-Authored-By: Claude Opus 5 --- dotfiles/CLAUDE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/dotfiles/CLAUDE.md b/dotfiles/CLAUDE.md index 9d34b4e..6006343 100644 --- a/dotfiles/CLAUDE.md +++ b/dotfiles/CLAUDE.md @@ -64,6 +64,7 @@ Niemals direkt auf `main` committen. Alle Aenderungen ueber Feature-Branches und - **Ausnahme `.commit-on-main`:** Vor dem Branchen im Repo-Root (`git rev-parse --show-toplevel`) auf die Marker-Datei `.commit-on-main` pruefen. Existiert sie, sind Direkt-Commits auf `main` erlaubt — dann kein Feature-Branch und kein PR, direkt auf `main` committen und pushen. - **Kleinteilige Commits:** Pro Commit nur ein einziges Thema. Nur die zum Thema gehörenden Dateien committen — keine thematisch gemischten Commits. +- **Immer mergen, nie rebasen:** Divergierte Branches per `git pull` (Merge) zusammenfuehren, nicht per `git pull --rebase`. Ein Rebase spielt jeden alten Commit einzeln neu ein und erzeugt dabei Konflikte, die inhaltlich gar nicht bestehen — etwa wenn ein Wert am Ziel schon gesetzt, aber an eine andere Stelle der Datei gewandert ist. Ausserdem schreibt er vorhandene Merge-Commits um. Ein Merge vergleicht nur die Endzustaende. Rebase nur auf ausdruecklichen Wunsch. - **Commit-Messages:** Conventional Commits, deutsche Beschreibung - Subject: `: ` — max 72 Zeichen, kein Punkt am Ende - Typen: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, `perf`, `ci`, `build`, `style`