i18n/de/skills/resolve-git-conflicts/SKILL.md
Merge- und Rebase-Konflikte mit sicheren Wiederherstellungsstrategien loesen. Umfasst das Identifizieren von Konfliktquellen, das Lesen von Konfliktmarkierungen, die Auswahl von Loesungsstrategien sowie das sichere Fortsetzen oder Abbrechen von Operationen. Verwenden wenn ein git merge, rebase, cherry-pick oder stash pop Konflikte meldet, ein git pull zu widersprueichlichen Aenderungen fuehrt oder eine fehlgeschlagene Merge- oder Rebase-Operation sicher abgebrochen und neu gestartet werden soll.
npx skillsauth add pjt222/agent-almanac resolve-git-conflictsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Merge- und Rebase-Konflikte identifizieren, loesen und beheben.
git merge oder git rebase meldet Konfliktegit cherry-pick kann nicht sauber angewendet werdengit pull fuehrt zu widersprueichlichen Aenderungengit stash pop konfligiert mit dem aktuellen ArbeitsbaumBestimmen, welche Operation den Konflikt verursacht hat:
# Check current status
git status
# Look for indicators:
# "You have unmerged paths" — merge conflict
# "rebase in progress" — rebase conflict
# "cherry-pick in progress" — cherry-pick conflict
Die Statusausgabe zeigt, welche Dateien Konflikte haben und welche Operation gerade laeuft.
Erwartet: git status zeigt Dateien unter "Unmerged paths" und weist auf die aktive Operation hin.
Bei Fehler: Wenn git status einen sauberen Baum zeigt, aber Konflikte erwartet wurden, wurde die Operation moeglicherweise bereits abgeschlossen oder abgebrochen. git log auf letzte Aktivitaeten pruefen.
Jede konfliktbehaftete Datei oeffnen und die Konfliktmarkierungen lokalisieren:
<<<<<<< HEAD
// Your current branch's version
const result = calculateWeightedMean(data, weights);
=======
// Incoming branch's version
const result = computeWeightedAverage(data, weights);
>>>>>>> feature/rename-functions
<<<<<<< HEAD bis =======: Die Version des aktuellen Branches (oder des Branches, auf den rebased wird)======= bis >>>>>>>: Die eingehenden Aenderungen (der zusammenzufuehrende Branch oder der anzuwendende Commit)Erwartet: Jede konfliktbehaftete Datei enthaelt einen oder mehrere Bloecke mit <<<<<<<, ======= und >>>>>>> Markierungen.
Bei Fehler: Wenn keine Markierungen gefunden werden, Dateien aber als konfliktbehaftet erscheinen, koennte es sich um eine Binaerdatei oder einen "geloescht vs. geaendert"-Konflikt handeln. git diff --name-only --diff-filter=U fuer die vollstaendige Liste pruefen.
Manuelles Zusammenfuehren (am haeufigsten): Die Datei bearbeiten, um beide Aenderungen logisch zu kombinieren, dann alle Konfliktmarkierungen entfernen.
Eigene Version akzeptieren (Version des aktuellen Branches behalten):
# For a single file
git checkout --ours path/to/file.R
git add path/to/file.R
# For all conflicts
git checkout --ours .
git add -A
Fremde Version akzeptieren (Version des eingehenden Branches behalten):
# For a single file
git checkout --theirs path/to/file.R
git add path/to/file.R
# For all conflicts
git checkout --theirs .
git add -A
Erwartet: Nach der Loesung enthaelt die Datei den korrekten zusammengefuehrten Inhalt ohne verbleibende Konfliktmarkierungen.
Bei Fehler: Wenn die falsche Seite gewaehlt wurde, die konfliktbehaftete Version aus der Merge-Basis erneut lesen. Waehrend eines Merges stellt git checkout -m path/to/file die Konfliktmarkierungen wieder her, damit ein neuer Versuch moeglich ist.
Nach dem Bearbeiten jeder konfliktbehafteten Datei:
# Stage the resolved file
git add path/to/resolved-file.R
# Check remaining conflicts
git status
Fuer jede Datei unter "Unmerged paths" wiederholen.
Erwartet: Alle Dateien wechseln von "Unmerged paths" zu "Changes to be committed". In keiner Datei verbleiben Konfliktmarkierungen.
Bei Fehler: Wenn git add fehlschlaegt oder Markierungen verbleiben, die Datei erneut oeffnen und sicherstellen, dass alle Zeilen mit <<<<<<<, ======= und >>>>>>> entfernt sind.
Sobald alle Konflikte geloest sind:
Fuer Merge:
git commit
# Git auto-populates the merge commit message
Fuer Rebase:
git rebase --continue
# May encounter more conflicts on subsequent commits — repeat steps 2-4
Fuer Cherry-Pick:
git cherry-pick --continue
Fuer Stash Pop:
# Stash pop conflicts don't need a continue — just commit or reset
git add .
git commit -m "Apply stashed changes with conflict resolution"
Erwartet: Die Operation wird abgeschlossen. git status zeigt einen sauberen Arbeitsbaum (oder wechselt waehrend des Rebase zum naechsten Commit).
Bei Fehler: Wenn der Fortsetzungsbefehl fehlschlaegt, git status auf verbleibende ungeloeste Dateien pruefen. Alle Konflikte muessen geloest sein, bevor fortgefahren werden kann.
Wenn die Loesung zu komplex ist oder der falsche Ansatz gewaehlt wurde, sicher abbrechen:
# Abort merge
git merge --abort
# Abort rebase
git rebase --abort
# Abort cherry-pick
git cherry-pick --abort
Erwartet: Das Repository kehrt in den Zustand vor dem Start der Operation zurueck. Kein Datenverlust.
Bei Fehler: Wenn der Abbruch fehlschlaegt (selten), git reflog nach dem Commit vor der Operation durchsuchen und mit git reset --hard <commit> wiederherstellen. Mit Vorsicht verwenden — dies verwirft uncommittierte Aenderungen.
Nachdem die Operation abgeschlossen ist:
# Verify clean working tree
git status
# Check that the merge/rebase result is correct
git log --oneline -5
git diff HEAD~1
# Run tests to confirm nothing is broken
# (language-specific: devtools::test(), npm test, cargo test, etc.)
Erwartet: Sauberer Arbeitsbaum, korrekte Merge-Historie, Tests bestehen.
Bei Fehler: Wenn Tests nach der Loesung fehlschlagen, hat der Merge moeglicherweise logische Fehler eingefuehrt, auch wenn Syntaxkonflikte geloest sind. Den Diff sorgfaeltig pruefen und beheben.
<<<<<<<, =======, >>>>>>>) in irgendeiner Datei verbleibendgit status zeigt einen sauberen Arbeitsbaumgit log korrekt--ours oder --theirs verwirft die andere Seite vollstaendig. Nur verwenden, wenn sicher ist, dass eine Version vollstaendig korrekt ist.--amend verwenden, es sei denn, der Rebase-Schritt sieht dies ausdrueichlich vor. Stattdessen git rebase --continue verwenden.git rebase --abort und git merge --abort verwerfen alle Loesungsarbeiten. Nur abbrechen, wenn von vorne begonnen werden soll.commit-changes - Nach der Konfliktloesung committenmanage-git-branches - Branch-Workflows, die zu Konflikten fuehrenconfigure-git-repository - Repository-Einrichtung und Merge-Strategientesting
Launch all available agents in parallel waves for open-ended hypothesis generation on problems where the correct domain is unknown. Use when facing a cross-domain problem with no clear starting point, when single-agent approaches have stalled, or when diverse perspectives are more valuable than deep expertise. Produces a ranked hypothesis set with convergence analysis and adversarial refinement.
tools
Write integration tests for a Node.js CLI application using the built-in node:test module. Covers the exec helper pattern, output assertions, filesystem state verification, cleanup hooks, JSON output parsing, error case testing, and state restoration after destructive tests. Use when adding tests to an existing CLI, testing a new command, verifying adapter behavior across frameworks, or setting up CI for a CLI tool.
development
Screen a proposed trademark for conflicts and distinctiveness before filing. Covers trademark database searches (TMview, WIPO Global Brand Database, USPTO TESS), distinctiveness analysis using the Abercrombie spectrum, likelihood of confusion assessment using DuPont factors and EUIPO relative grounds, common law rights evaluation, and goods/services overlap analysis. Produces a conflict report with a risk matrix. Use before adopting a new brand name, logo, or slogan — distinct from patent prior art search, which uses different databases, legal frameworks, and analysis methods.
tools
Scaffold a new CLI command using Commander.js with options, action handler, three output modes (human-readable, quiet, JSON), and optional ceremony variant. Covers command naming, option design, shared context patterns, error handling, and integration testing. Use when adding a command to an existing Commander.js CLI, designing a new CLI tool from scratch, or standardizing command structure across a multi-command CLI.