Design wechseln

Git Fortgeschritten: Team-Kollaboration und Branch-Management Best Practices

Easton editorial illustration: bottleneck pressure gauge

Einleitung

Ein Kollege schrieb in den Chat: „Dein Merge hat gerade meine Login-Funktion überschrieben – Nutzer kommen online nicht mehr rein …“

Im Code nur Konfliktmarker, unklar was meins, was seins war. Diese Nacht lehrte mich: Git-Basics beherrschen heißt nicht, im Team sicher zu arbeiten.

Wenn Sie schon einmal zu viele Branches hatten, Merge-Angst oder eine Commit-Historie wie ein Knäuel kannten, hilft dieser Artikel. Praxis aus mehreren Jahren Teamarbeit: Workflow-Wahl, Konflikte, Rebase, Code-Review. Danach wissen Sie, welche Branch-Strategie passt, wie Sie Konflikte lösen, Historie mit Rebase aufräumen und Reviews effizient gestalten.

Kapitel 1: Den passenden Git-Workflow wählen

Als ich das erste Mal ein Team führte, wusste ich nicht, welchen Workflow wir brauchen. „Git Flow ist professionell“ – kopiert, und fünf Leute verbrachten täglich eine halbe Stunde nur mit Branches. Am Ende waren alle genervt.

Später wurde klar: Es gibt keinen besten Workflow – nur den passenden.

Git Flow vs. GitHub Flow vs. Trunk Based Development

Kurz die drei Modelle:

Git Flow ist wie eine strenge Fabriklinie: develop, feature, release, hotfix. Microsoft, IBM und große Firmen mit festem Release-Rhythmus nutzen das.

Für kleine Teams ist Git Flow schwer. Früher: release von develop, Test, Merge nach master, zurück nach develop – allein der Prozess kostete Nerven.

GitHub Flow ist schlank: ein Hauptbranch (main/master), Features als feature/-Branches, PR, Merge. Ideal für Teams mit 3–10 Personen, schnelle Iteration, Continuous Delivery.

Mein aktuelles Team nutzt GitHub Flow mit CI/CD – mehrere Releases pro Tag sind normal, die Regeln sind leicht.

Trunk Based Development geht weiter: fast alles direkt auf dem Hauptbranch, Branch-Lebensdauer oft unter einem Tag. Google, Facebook – mit sehr hoher Testabdeckung.

Für normale Teams ist TBD riskant. Unter ~90 % Testabdeckung bricht der Main schnell.

2025 dominiert das Hybridmodell. Kleine Teams (1–10): GitHub Flow plus GitHub Actions oder GitLab CI. Größere Teams mischen Git-Flow-Elemente dazu.

Ein Bekannter mit 20 Leuten nutzt „GitHub Flow + Release-Branch“: Alltag wie GitHub Flow, vor Releases ein release/-Branch zur Stabilisierung.

Empfehlung:

  • 1–5 Personen: GitHub Flow, nicht overthinken
  • 5–15 Personen: GitHub Flow + vereinfachtes Release
  • Ab 15 Personen: Git Flow oder Hybrid – mit solidem CI/CD

Wichtig: Nicht überdesignen. Komplexe Branch-Strategien, die niemand einhält, enden im Wildwuchs.

Kapitel 2: Goldene Regeln für Branch-Management

Branch-Chaos ist der Klassiker. Ein Projekt hatte 70+ Remote-Branches, die Hälfte Zombie von vor zwei Jahren – eigene Branches zu finden war Tortur.

Diese goldenen Regeln haben unser Repo deutlich aufgeräumt.

Branch-Namenskonvention

Pflicht-Präfixe:

  • feature/ – neue Features
  • bugfix/ – Bugfixes
  • hotfix/ – dringende Hotfixes
  • release/ – Release-Branches

Plus Ticketnummer, z. B. feature/JIRA-1234-user-login. Auf einen Blick: Zweck und Verantwortung. Ein Branch namens test lag drei Monate rum – niemand wusste mehr warum.

Weitere Tipps:

  • Keine chinesischen Branch-Namen (Encoding-Probleme in manchen Tools)
  • Keine Sonderzeichen, besonders Leerzeichen und @
  • Bindestrich - statt Unterstrich _

Branch-Lebenszyklus

Extremfall: Feature-Branch drei Monate offen, Merge unmöglich, Feature neu geschrieben.

Regel im Team: Feature-Branch max. 3 Tage. Großes Feature → mehrere kleine Features, nacheinander mergen.

Nach Merge: Branch löschen. „Vielleicht brauche ich ihn noch“ – in der Praxis selten. Git behält die Historie.

Befehle (notiert für schnellen Zugriff):

# Lokalen Branch löschen
git branch -d feature/xxx
# Remote-Branch löschen
git push origin --delete feature/xxx

Zombie-Branches aufräumen:

# Bereits in main gemergte Branches anzeigen
git branch --merged main
# Batch-Löschung (vorsichtig nutzen)
git branch --merged main | grep -v "main" | xargs git branch -d

Branch Protection

Hauptbranch schützen ist Pflicht.

Früher durfte jeder direkt auf main pushen – ein Praktikant schickte unfertigen Code, Testumgebung down.

Heute auf GitHub/GitLab:

  • Kein direkter Push auf main, nur PR/MR
  • Mindestens 1 Approve
  • CI grün (Tests, Lint)

Einstellung: GitHub → Settings → Branches → Branch protection rules.

Wirkt zunächst bürokratisch, verhindert aber viele Fehler – und Review ist Lernchance für Stil und Domäne.

Kapitel 3: Git Rebase vs. Merge – wann was?

Beim ersten git rebase waren alle Commit-IDs plötzlich anders – ich dachte, Code weg. Rebase und Merge mergen beides, aber fundamental unterschiedlich.

Merge und Rebase im Kern

Analogie:

Merge – zwei Flüsse treffen sich, Merge-Commit, sichtbare Gabel in der Historie.

Rebase – Nebenarm wird in den Hauptstrom umgeleitet, Historie wirkt linear; Commit-IDs ändern sich.

Technisch:

  • Merge behält vollständige Historie inkl. Branch-Kontext
  • Rebase erzeugt lineare Historie, verliert Branch-Kontext

Einsatz und goldene Regel

Merge, wenn:

  • Feature final in main
  • Shared Branch zusammenführen
  • Merge-Historie sichtbar bleiben soll

Rebase, wenn:

  • Feature hinter main nachziehen
  • Eigene Historie aufräumen (noch nicht gepusht)
  • Lineare Historie gewünscht

Goldene Regel:

Niemals bereits auf Shared Branches gepushte Commits rebasen!

Rebase ändert IDs – wer auf alten Commits baute, hat danach Chaos. Ein Kollege löste das für das ganze Team aus – eine Woche Ärger.

Prinzip: Lokal Rebase frei, vor Push nachdenken.

Interaktives Rebase in der Praxis

git rebase -i ist mächtig. Ein Feature mit dutzenden Commits wie „fix“, „nochmal“, „again“ – vor Merge in drei saubere Commits gefaltet:

# Letzte 10 Commits aufräumen
git rebase -i HEAD~10

Editor zeigt z. B.:

pick a1b2c3d Benutzer-Login hinzufügen
pick e4f5g6h Login-Bug fixen
pick i7j8k9l Nochmal anpassen
pick m0n1o2p Login-Logik optimieren
...

Aktionen:

  • pick – Commit behalten
  • squash / s – in vorherigen Committen
  • reword / r – Message ändern
  • edit / e – pausieren, Inhalt ändern
  • drop / d – Commit verwerfen

Beispiel:

pick a1b2c3d Benutzer-Login hinzufügen
squash e4f5g6h Login-Bug fixen
squash i7j8k9l Nochmal anpassen
reword m0n1o2p Login-Logik optimieren

Erstes Mal wirkt es komplex – nach ein paar Durchläufen Routine. Historie ohne peinliche „nochmal“-Messages.

Best Practice 2025: Lokal Rebase zum Aufräumen, Merge in den Hauptbranch. Saubere Main-Historie plus nachvollziehbare Merges.

Kapitel 4: Konflikte ohne Panik

Konflikte hatten bei mir Trauma-Status. Beim ersten Mal nur <<<<<<< und >>>>>>> – am Ende eigenen Code gelöscht und neu geschrieben.

Konflikte sind handhabbar, wenn man die Marker versteht und präventiv arbeitet.

Konflikte vorbeugen

1. Täglich mit Main synchronisieren

Vor Arbeitsbeginn:

git checkout main
git pull origin main
git checkout feature/xxx
git merge main  # oder git rebase main

Feature bleibt nah am Main – weniger Merge-Schmerz.

2. Kleine Commits, schnelle Merges

Wieder: Feature-Branch max. 3 Tage. Längere Lebensdauer = größere Diff = mehr Konflikte.

3. Vorab abstimmen

Zwei Leute, gleiche Datei – vorher reden. Wir pflegen in Notion eine Tabelle „Features in Entwicklung“.

Konfliktmarker und manuelle Lösung

Typisches Bild:

<<<<<<< HEAD
function login(username, password) {
  // Ihr Code
  return api.post('/login', { username, password });
}
=======
function login(email, password) {
  // Code des Kollegen
  return api.post('/auth/login', { email, password });
}
>>>>>>> feature/new-login
  • <<<<<<< HEAD bis =======: aktueller Branch
  • ======= bis >>>>>>> feature/new-login: einzumergender Branch

Entscheidung: behalten, verwerfen, kombinieren – hier z. B. username vs. email und API-Pfad klären.

Nach Lösung Marker entfernen:

git add .
git commit -m "Merge-Konflikt Login-Funktion gelöst"

Visuelle Tools

Manuell ist mühsam bei vielen Konflikten. VS Code markiert Konflikte und bietet:

  • „Accept Current Change“ – eigene Version
  • „Accept Incoming Change“ – fremde Version
  • „Accept Both Changes“ – beides
  • „Compare Changes“ – Diff-Ansicht

Bei komplexen Fällen: git mergetool mit p4merge – drei Spalten (Basis, Ihre Version, andere Version).

Nach der Lösung verifizieren

Einmal nach Konfliktlösung direkt gepusht – wichtige Logik des Kollegen versehentlich gelöscht, Produktion betroffen.

Heute immer:

  1. Tests lokal
  2. git diff – nichts Wichtiges gelöscht
  3. Wenn möglich Kollege drüberschauen lassen

Minuten Aufwand, vermeidet Incidents.

Kapitel 5: Effizientes Code-Review

Früher hasste ich Reviews – „mein Code ist gut genug“. Kommentare, ständiges Umbauen, Zeitverlust.

Als ich selbst reviewte, wurde klar: Code-Review ist mehr als Bug-Suche.

Der eigentliche Wert

Drei Punkte:

1. Wissen teilen – wer baut was, keine Silos. Mehrfach in PRs gesehen, wie Features elegant gelöst sind.

2. Qualität – zweites Paar Augen. Einmal Rekursion ohne Grenzfall – Reviewer verhinderte Stack Overflow.

3. Wachstum – guten Code lesen lernt man am besten so. Viele Tricks aus Senior-PRs übernommen.

PR Best Practices

Passende PR-Größe

200–400 Zeilen ideal, max. 500. Größere PRs werden durchgewunken.

Großes Feature splitten, z. B. User-System:

  • PR1: DB-Schema und Basis-Model
  • PR2: Registrierung
  • PR3: Login
  • PR4: Profil bearbeiten

Klare Beschreibung

Team-Template:

## Hintergrund
Kurz: warum diese Änderung

## Änderungen
- Neues Feature xxx
- Bug xxx behoben
- Modul xxx refactored

## Tests
- [ ] Unit-Tests grün
- [ ] Manuell lokal geprüft
- [ ] Auf Staging verifiziert

## Hinweise
Config, Migrationen, etc.

Commit Messages

Conventional Commits mit Präfix:

  • feat: Benutzer-Login
  • fix: Passwort-Validierung
  • refactor: User-Service
  • docs: API-Doku

Ermöglicht Changelog-Generierung und schnelle Historien-Suche.

Reviewer und Autor

Reviewer:

  • Antwort innerhalb von 24 Stunden
  • Konstruktiv („Vorschlag: xxx, weil …“)
  • Logik, Lesbarkeit, Bugs – Stil dem Linter

Autor:

  • Kommentare zeitnah
  • Design erklären
  • Feedback prüfen, auch wenn es zunächst odd wirkt

Früher schrieb ich „hier falsch, bitte ändern“ – heute eher: „Diese Schleife skaliert schlecht bei großen Datenmengen. Vorschlag xxx oder yyy – was meinst du?“

Trend 2025: KI-gestütztes Review

2025 mehr Tools wie GitHub Code Quality (Oktober): Wartbarkeit, Security.

Im Test hilfreich bei:

  • Unbehandelten Exceptions
  • Potenziellen Memory Leaks
  • Hoher zyklomatischer Komplexität

KI ersetzt Menschen nicht bei Design und Fachlogik.

Aktuell: KI-Scan für Offensichtliches, Mensch für Architektur und Domäne – spürbar schneller.

Kapitel 6: Typische Fehler und Checkliste

Abschließend Fehler aus eigener Erfahrung – damit Sie sie umgehen.

Gefahr von Force Push

Feature weit hinter main, nach Rebase kein normaler Push. git push -f gesucht – „Force“ klang machbar.

Ergebnis: frische Commits eines Kollegen überschrieben. Glücklicherweise Backup – sonst Tag Arbeit weg.

git push -f / --force überschreibt Remote blind.

Erlaubt:

  • Eigener Feature-Branch, niemand anders nutzt ihn

Verboten:

  • main/master und jeder Shared Branch

Wenn nötig: git push --force-with-lease – bricht ab, wenn Remote neue Commits hat.

Weitere häufige Fehler

1. Direkt auf main

Auch Ein-Zeichen-Fix: Branch, PR, Merge – Review und Rollback.

2. Beliebige Commit Messages

„fix“, „Änderung“, „111“, „asdf“ – später wertlos. Jeder Commit: Was und warum.

3. Branches nach Merge behalten

Sofort löschen. Auto-Delete in GitHub/GitLab beim Merge aktivieren.

4. Blind git add .

Staged alles – .env mit Secrets landete schon in Repos.

Besser: git add -p, interaktiv bestätigen.

Team-Git-Checkliste

Branch-Management

  • Einheitliche Namen (feature/, bugfix/, …)
  • Ticketnummer im Namen
  • Feature max. 3 Tage
  • Nach Merge löschen
  • Branch Protection auf main

Commits

  • Conventional Commits
  • Ein Commit, eine Sache
  • Lint und Tests vor Push
  • Keine Secrets (.env, Keys)

Code-Review

  • PR 200–400 Zeilen
  • Klare Beschreibung
  • Min. 1 Approve
  • CI grün
  • Antwort innerhalb 24h

Konflikte

  • Täglich Main sync
  • Tests nach Lösung
  • Unklares mit Team klären

Verboten

  • Nicht auf main direkt entwickeln
  • Kein git push -f auf Shared Branches
  • Kein Rebase gepushter Shared-Commits
  • Kein untested Code

Fazit

Die Nacht um zwei Uhr mit dem Login-Incident wünschte ich mir damals schon dieses Wissen. Jeder Fehler wurde Erfahrung.

Git ist nicht das Schwierige – Einigung im Team ist es. Ohne Disziplin nützt jeder Workflow nichts.

Einfach starten, schrittweise verbessern. Keine Monster-Policy am Tag eins.

Beispiel-Roadmap:

  • Woche 1: Branch-Namen vereinheitlichen
  • Woche 2: Branch Protection
  • Woche 3: PR-Review etablieren
  • Woche 4: Commit-Message-Konvention

Tempo geben, Team mitnehmen.

Vor allem: Kommunizieren. Viele Git-Konflikte sind Kommunikationsprobleme.

Weiterführend:

Als Nächstes vielleicht cherry-pick, stash, submodule – bei Interesse folgen.

Ihnen und Ihrem Team: weniger Nacht-Merge-Panik, mehr flüssige Zusammenarbeit!

Git-Team-Kollaboration: Kompletter Ablauf

Vom Workflow bis Code-Review – Branch-Management, Konfliktlösung und Best Practices

Estimated time: PT1H

  1. 1

    Step 1: Passenden Git-Workflow wählen

    Nach Teamgröße entscheiden:
  2. 2

    Step 2: Branch-Regeln etablieren

    Namenskonvention: Präfixe feature/, bugfix/, hotfix/, release/, Ticketnummer (feature/JIRA-1234-user-login), Bindestrich statt Unterstrich, keine chinesischen Namen oder Sonderzeichen. Lebenszyklus: Feature max. 3 Tage, nach Merge löschen (git branch -d, git push origin —delete), Batch: git branch —merged main | grep -v “main” | xargs git branch -d. Protection: kein direkter Push auf main, min. 1 Approve, CI Pflicht.
  3. 3

    Step 3: Rebase und Merge gezielt nutzen

    Merge: Feature in main, Shared Branches, volle Merge-Historie. Rebase: Main nachziehen, persönliche Historie vor Push, lineare Historie. Goldene Regel: keine Rebase gepushter Shared-Commits. Interaktiv: git rebase -i HEAD~10 mit pick/squash/reword/edit/drop. 2025: lokal Rebase, Merge in main.
  4. 4

    Step 4: Git-Konflikte vermeiden und lösen

    Prävention: täglich Main sync (checkout main, pull, zurück zu feature, merge/rebase), kleine Commits (max. 3 Tage Branch), vorher abstimmen. Marker: <<<<<<< HEAD bis ======= eigener Code, bis >>>>>>> fremder Code. Tools: VS Code Accept Current/Incoming/Both/Compare, git mergetool + p4merge. Danach: Tests, git diff, optional Kollegen-Review.
  5. 5

    Step 5: Effizientes Code-Review

    PR 200–400 Zeilen (max. 500), große Features splitten. Template: Hintergrund, Änderungen, Tests, Hinweise. Conventional Commits (feat/fix/refactor/docs). Reviewer: 24h, konstruktiv, Fokus Logik. Autor: antworten, Design erklären. 2025: KI-Review (GitHub Code Quality), KI für Offensichtliches, Mensch für Design.
  6. 6

    Step 6: Fehler vermeiden, Team-Regeln

    Verboten: main direkt, git push -f auf Shared (besser —force-with-lease), Rebase gepushter Shared-Commits, untested Code. Weitere Fehler: schlechte Messages, alte Branches, blind git add . (besser git add -p). Checkliste: Branch-Namen, Commits, Review, Konflikte wie oben.

FAQ

Welchen Git-Workflow sollte ein kleines Team wählen?
Empfehlung: GitHub Flow. Gründe:

• Einfach und schnell: nur ein Hauptbranch, alle Features starten als Feature-Branch vom Main
• Schnelle Iteration: mit CI/CD mehrfach täglich deploybar
• Geringe Lernkurve: Team versteht und hält Regeln leicht ein

Warum Git Flow für kleine Teams ungeeignet ist:
• Komplexer Prozess: develop/feature/release/hotfix parallel pflegen
• Für große Unternehmen: Teams mit festem Release-Zyklus
• Für kleine Teams zu schwerfällig – Branch-Management frisst täglich viel Zeit

Trend 2025: Hybridmodelle – kleine Teams mit GitHub Flow, größere Teams kombinieren Teile von Git Flow. Kernpunkt: nicht überdesignen, passende Lösung zur Teamgröße wählen.
Was sind die goldenen Regeln für Branch-Management? Wie vermeidet man Branch-Chaos?
Branch-Namenskonvention:
• Einheitliche Präfixe (feature/ für Features, bugfix/ für Bugs, hotfix/ für Hotfixes, release/ für Releases)
• Ticketnummer Pflicht (z. B. feature/JIRA-1234-user-login)
• Wörter mit Bindestrich - verbinden, nicht Unterstrich _ (Branchenkonvention)
• Keine chinesischen Branch-Namen (Git unterstützt sie, manche Systeme zeigen Zeichenfehler)
• Keine Sonderzeichen (besonders Leerzeichen und @)

Branch-Lebenszyklus:
• Feature-Branch max. 3 Tage (große Features in mehrere kleine Features splitten)
• Nach Merge sofort löschen:
- git branch -d feature/xxx lokal
- git push origin --delete feature/xxx remote
• Gemergte Branches batchweise löschen: git branch --merged main | grep -v "main" | xargs git branch -d

Branch Protection:
• Auf GitHub/GitLab: direkter Push auf main verbieten, nur PR/MR
• Mindestens 1 Approve vor Merge
• CI muss grün sein (Unit-Tests, Lint)
• Konfiguration: GitHub Repository → Settings → Branches → Branch protection rules
Was ist der Unterschied zwischen Rebase und Merge? Wann nutzt man was?
Grundunterschied:

Merge:
• Wie zwei Flüsse, die zusammenlaufen – man sieht klar, wo sie sich treffen
• Erzeugt Merge-Commit, Historie mit sichtbaren Verzweigungen
• Vollständige Historie inkl. Branch-Erstellung und Merge

Rebase:
• Wie Nebenarm-Wasser in den Hauptstrom umgeleitet – Historie wirkt linear
• Schreibt Historie um, Commits werden „verschoben“, Commit-IDs ändern sich
• Lineare Historie, aber Branch-Kontext geht verloren

Einsatz:
• Merge: Feature in main mergen, Shared Branches zusammenführen, Merge-Historie bewahren
• Rebase: Feature hinter main nachziehen, persönliche Historie aufräumen (vor Push), lineare Historie wünschen

Goldene Regel:
• Niemals bereits auf Shared Branches gepushte Commits rebasen (Commit-IDs ändern sich, Kollegen mit alten Commits geraten ins Chaos)

Prinzip: lokal Rebase frei, vor Push nachdenken.

Best Practice 2025: lokal Rebase zum Aufräumen, Merge beim Einchecken in den Hauptbranch.
Wie verhindert und löst man Git-Konflikte?
Prävention:

1) Täglich mit Main synchronisieren:
• Vor Arbeitsbeginn: git checkout main && git pull origin main && git checkout feature/xxx && git merge main oder git rebase main

2) Kleine Commits, schnelle Merges:
• Feature-Branch max. 3 Tage – je länger der Branch, desto höher die Konfliktwahrscheinlichkeit

3) Vorab abstimmen:
• Gleiche Datei? Vorher Bescheid geben
• Notion-Tabelle „Features in Entwicklung“ zeigt, wer welche Datei bearbeitet

Konfliktmarker verstehen:
• <<<<<<< HEAD bis =======: Code Ihres aktuellen Branch
• ======= bis >>>>>>>: Code des einzumergenden Branch
• Entscheiden: behalten, verwerfen oder kombinieren
• Nach Lösung Marker entfernen, dann git add . && git commit

Visuelle Tools:
• VS Code: Accept Current Change, Accept Incoming Change, Accept Both Changes, Compare Changes
• git mergetool mit p4merge: Drei-Spalten-Vergleich (Basis, Ihre Version, fremde Version)

Nach der Lösung prüfen:
• Tests lokal ausführen
• git diff prüfen, nichts versehentlich gelöscht
• Wenn möglich Kollege reviewen lassen
Wie baut man einen effizienten Code-Review-Prozess auf? PR Best Practices?
Wert von Code-Review:
• Wissen teilen (Team sieht, wer woran arbeitet – keine Silos)
• Qualität (zweites Paar Augen findet Blindspots)
• Wachstum (guten Code lesen ist beste Lernmethode)

PR Best Practices:

1) Passende PR-Größe:
• Ideal 200–400 Zeilen, max. 500
• Zu große PRs werden oberflächlich geprüft – große Features in mehrere PRs splitten

2) Klare PR-Beschreibung:
• Template mit Hintergrund/Änderungen/Tests/Hinweisen
• Reviewer versteht sofort Was und Warum

3) Saubere Commit Messages:
• Conventional Commits mit Typ-Präfix:
- feat/ neues Feature
- fix/ Bugfix
- refactor/ Refactoring
- docs/ Dokumentation
• Ermöglicht automatisches Changelog und leichtere Historien-Recherche

Rollen:

Reviewer:
• PR innerhalb von 24 Stunden bearbeiten
• Konstruktives Feedback („Vorschlag: xxx, weil …“ statt „schlecht geschrieben“)
• Logik, Lesbarkeit, Bugs – Stil dem Linter überlassen

Autor:
• Kommentare zeitnah beantworten
• Design erklären (unklarer Code = unklare Kommunikation)
• Feedback offen prüfen
Welche typischen Fehler gibt es bei Git-Teamarbeit? Wie vermeidet man sie?
Häufige Fehler:

1) Gefahr von Force Push:
• git push -f oder git push --force überschreibt Remote-Historie blind
• Niemals auf main/master oder Shared Branches
• Wenn nötig: git push --force-with-lease (prüft neue Remote-Commits und bricht ab)

2) Direkt auf main entwickeln:
• Auch Ein-Zeichen-Fixes über Branch + PR – Review-Spur und Rollback bleiben möglich

3) Beliebige Commit Messages:
• „fix“, „Änderung“, „111“, „asdf“ helfen später nicht
• Jeder Commit: Was geändert, warum geändert

4) Gemergte Branches nicht löschen:
• Nach Merge sofort entfernen
• GitHub/GitLab: Auto-Delete-Branch beim Merge aktivieren

5) Blind git add .:
• Staged alles – inkl. .env mit Passwörtern
• Besser: git add -p, Datei für Datei bestätigen

Team-Git-Checkliste:

Branch-Management:
• Einheitliche Namen, Ticketnummer, max. 3 Tage Lebensdauer, nach Merge löschen, Branch Protection

Commits:
• Conventional Commits, ein Commit = eine Sache, Lint/Tests vor Push, keine Secrets

Code-Review:
• PR-Größe passend, klare Beschreibung, min. 1 Approve, CI grün, 24h Reaktionszeit

Konflikte:
• Täglich Main sync, Tests nach Lösung, bei Unsicherheit kommunizieren

Verboten:
• Nicht direkt auf main entwickeln
• Kein git push -f auf Shared Branches
• Kein Rebase gepushter Shared-Branch-Commits
• Kein untested Code committen

10 Min. Lesezeit · Veröffentlicht am: 24. Nov. 2025 · Aktualisiert am: 14. Juli 2026

Kommentare

Melde dich mit GitHub an, um einen Kommentar zu hinterlassen

Easton BlogEaston Blog