Claude Code: Git-Workflow

Claude Code integriert Git-Funktionen tiefgehend und ermöglicht es dir, fast alle Git-Operationen in natürlicher Sprache auszuführen, einschließlich des Erstellens von Commits, der Verwaltung von Branches, der Behandlung von Merge-Konflikten und der Nutzung von Git Worktree für parallele Workflows. Dieses Kapitel bietet eine detaillierte Einführung in die effiziente Nutzung von Git in Claude Code.


Grundlegende Git-Operationen

1. Änderungen anzeigen

Frage einfach in natürlicher Sprache, um den Git-Status abzurufen:

Which files did I change?
What does this change include?
最近 10 次提交都改了什么?
检查一下当前的 git 状态

Claude führt automatisch die entsprechenden Git-Befehle aus und zeigt die Ergebnisse an.

2. Code committen

Commit:

Commit this change.
Submit this modification.

Commit mit Beschreibung:

把这次的修改提交,commit 信息说明修复了登录验证的 bug

Claude generiert automatisch eine wohlgeformte Commit-Nachricht basierend auf den tatsächlichen Änderungen.

3. Branch-Verwaltung

新建一个 feature/user-profile 分支
切换到 develop 分支
把 main 分支的最新改动合并进来
View all branches.
Delete merged branches.

Umgang mit Merge-Konflikten

1. Automatisches Auflösen einfacher Konflikte

Help me resolve merge conflicts.
This file has conflicts, help me check which version is correct.

Claude analysiert die Änderungen und wählt den passenden Commit-Kontext oder eine Lösung aus.

2. Manueller Eingriff bei komplexen Konflikten

Wenn der Konflikt zu komplex ist, wird Claude Ihnen die Vor- und Nachteile jeder Option erklären:

这个冲突涉及架构设计,你来决定保留哪个方案:
A. 保留我们的实现...
B. 保留引入的优化...

Claude Code zeigt die Änderungen an und fordert Ihre Bestätigung an, bevor Dateiänderungen vorgenommen werden. Bei risikoreichen Vorgängen wie Merge-Konflikten ist es besonders wichtig, jede Änderung sorgfältig zu prüfen.


Paralleler Git-Worktree-Workflow

Git Worktree ermöglicht es Ihnen, in verschiedenen Verzeichnissen gleichzeitig an unterschiedlichen Branches zu arbeiten, ohne Branches zu wechseln oder das Repository zu klonen. Dies ist eine der leistungsstärksten parallelen Arbeitsmethoden in Claude Code.

1. Erstellen eines Worktrees mit Claude

Angeben eines Worktrees beim Starten von Claude:

claude --worktree feature-auth

Dies wird automatisch:

  • In.claude/worktrees/feature-auth/Ein neues Verzeichnis erstellen
  • Basierend auforigin/HEADEinen neuen Branch von (Remote-Standardbranch) erstellen
  • Eine unabhängige Claude-Sitzung im neuen Verzeichnis starten

Mehrere Worktrees gleichzeitig öffnen:

claude --worktree bugfix-123
claude --worktree

Wenn kein Name angegeben wird, generiert Claude automatisch interessante Namen (wie z. B.bright-running-fox)。

2. Worktree-Eigenschaften

Eigenschaft Wert
Ort <repo>/.claude/worktrees/<name>
Branch-Benennung worktree-<name>
Basis-Branch Remoteorigin/HEADBranch, auf den er verweist

3. Worktree-Lebenszyklus

Szenario Verhalten
Keine Änderungen vorgenommen Worktree und Branch werden automatisch gelöscht
Es gibt Änderungen oder Commits Claude fordert Sie auf, zwischen Behalten und Löschen zu wählen
Verwaister Worktree, verursacht durch einen Claude-Absturz ÜberschreitetcleanupPeriodDaysAutomatisch gelöscht nach der konfigurierten Anzahl von Tagen

4. Kopieren von .gitignore in den Worktree

Im Projektstammverzeichnis erstellen.worktreeincludeDatei, die die gitignore-Dateien angibt, die in den Worktree kopiert werden sollen:

.env
.env.local
config/secrets.json

Nur diejenigen, die einem Muster entsprechenundDateien, die von gitignore ignoriert werden, werden kopiert.

5. Worktree manuell verwalten

Wenn Sie mehr Kontrolle benötigen, können Sie manuell verwalten:

# 创建 worktree 并指定分支
git worktree add ../project-feature-a -b feature-a

# 使用已有分支创建 worktree
git worktree add ../project-bugfix bugfix-123

# 在 worktree 中启动 Claude
cd ../project-feature-a && claude

# 完成后清理
git worktree list
git worktree remove ../project-feature-a

Es wird empfohlen, hinzuzufügen.claude/worktrees/hinzufügen zu.gitignore, um zu vermeiden, dass Worktree-Inhalte als nicht verfolgte Dateien im Haupt-Repository angezeigt werden.


Worktree-Isolierung für Subagenten

Subagenten können die Worktree-Isolierung verwenden, um vollständig unabhängige parallele Arbeit zu erreichen:

Methode 1: Claude automatisch erledigen lassen

让子代理使用 worktree 来并行处理这些任务

Methode 2: In der Subagenten-Konfiguration angeben

Beispiel

---
name
: experimental-refactor
description
: Versuchen Sie einen Refactoring-Ansatz in einem isolierten Worktree
isolation
: worktree    # In einem temporären Worktree ausführen
Werkzeuge
: Read, Write, Edit, Bash
---

Du kannst im isolierten Umfeld frei Änderungen vornehmen, ohne den Hauptbranch zu beeinflussen.
Fasse nach Abschluss die Änderungen zusammen und gib an, ob der Ansatz erfolgreich war.

Subagent-Worktree-Funktionen

  • Jeder Subagent erhält automatisch einen unabhängigen Worktree
  • Worktree wird nach Abschluss der Aufgabe automatisch bereinigt
  • Änderungen wirken sich nicht auf das Hauptrepository aus
  • Geeignet für explorative Aufgaben und zum Vergleichen von Ansätzen

Pull-Request-Workflow

1. Schritte zum Erstellen eines PR

Schritt 1: Claude die Änderungen zusammenfassen lassen

Summarize the changes I made to the authentication module.

Schritt 2: PR generieren

创建一个 PR

Schritt 3: PR-Beschreibung verfeinern

在 PR 描述中补充更多关于安全改进的内容

2. PR-Sitzungszuordnung

Verwendunggh pr createBeim Erstellen eines PR werden Claude-Sitzungen automatisch mit diesem PR verknüpft:

  • Nachdem eine Sitzung mit einem PR verknüpft wurde, kannst du die Unterhaltung von diesem PR aus fortsetzen
  • Verwendungclaude --from-pr <number>Die verknüpfte Sitzung fortsetzen

3. GitHub CLI verwenden

Claude weiß, wie man dasghCLI-Tool verwendet. Wenn nicht installiertgh, kann Claude über die GitHub-API lesen und schreiben, allerdings mit eingeschränkter Funktionalität.

# Claude 可以执行的操作
gh pr create --title "Fix login bug"
gh pr view --comments
gh pr diff
gh issue create --title "Bug report"

Sitzungsverwaltung und Git-Integration

1. Fortsetzen einer vorherigen Sitzung

Befehl Funktion
claude --continue Die neueste Unterhaltung im aktuellen Verzeichnis fortsetzen
claude --resume Session-Auswahl öffnen oder anhand des Namens fortsetzen
claude --from-pr 123 Eine mit einem bestimmten PR verknüpfte Session fortsetzen

2. Git-Funktionen der Session-Auswahl

Tastenkürzel Funktion
B Sessions für den aktuellen Git-Branch filtern

3. Anzeige der Session-Metadaten

Die Session-Auswahl zeigt die folgenden Informationen an:

  • Session-Name oder anfänglicher Prompt
  • Zeit seit der letzten Aktivität
  • Anzahl der Nachrichten
  • Git-Branch (falls vorhanden)

4. Branch-Sessions

Verwendung/branch、/rewindoder--fork-sessionErstellte Sitzungen werden zur einfacheren Verwaltung unter der Stammsitzung gruppiert.


Plan Mode und Sicherheitsanalyse

Plan Mode verwendet schreibgeschützte Operationen, um die Codebasis sicher zu analysieren, ohne Schreiboperationen auszuführen.

Plan Mode starten

claude --permission-mode plan

Oder führen Sie eine einmalige Abfrage in einer Sitzung aus:

claude --permission-mode plan -p "分析认证系统并提出改进建议"

Standardmodus in settings.json konfigurieren

Beispiel

{
  "permissions": {
    "defaultMode": "plan"
  }
}

Typische Workflow-Beispiele

Workflow 1: Parallele Entwicklung mehrerer Aufgaben

# 场景:同时开发三个功能,但不想切换分支

> 启动三个 worktree,分别处理登录重构、支付集成和性能优化
> 在每个 worktree 中独立工作,完成后合并到主分支

Workflow 2: Fehlerbehebungsprozess

# 第一步:描述问题
> 用户反馈:用户登出后刷新页面仍然显示已登录

# 第二步:创建修复分支
> 创建一个 bugfix/session-cookie 分支来修复这个问题

# 第三步:分析与修复
> 先分析可能的原因,在 bugfix 分支中修复

# 第四步:提交并创建 PR
> 提交修复并创建一个 PR

Workflow 3: Code-Review

# 审查特定文件
> 帮我审查 src/payment/processor.ts,重点关注错误处理

# 审查 git 改动
> 审查我这次的所有改动,看看有没有明显的问题

# 在独立分支中审查
> 创建一个 worktree 来审查这个重构方案

Workflow 4: Feature-Entwicklung und Verifizierung

# 主会话:实现新功能
> 实现用户资料编辑功能

# 子代理:并行运行测试
> 在子代理中运行所有测试,只返回失败的测试和根因

# 子代理:检查代码规范
> 使用子代理审查代码是否符合项目规范

# 完成后:创建 PR
> 创建一个 PR 并添加详细的描述

Nicht-Git-Versionskontrollsysteme

Für Nutzer von SVN, Perforce oder Mercurial unterstützt Claude Code die Erweiterung durch Hooks:

Benutzerdefinierte Hooks konfigurieren

In.claude/settings.jsonKonfigurieren in:

Beispiel

{
  hooks: {
    "WorktreeCreate": "./scripts/create-worktree.sh",
    "WorktreeRemove": "./scripts/remove-worktree.sh"
  }
}

Diese Hooks ersetzen das Standardverhalten von Git. Wenn Sie Hook-Skripte verwenden, kopieren Sie die lokale Konfiguration in das Skript, anstatt zu verwenden.worktreeinclude。


Best Practices aus dem internen Team von Anthropic

  • Verwenden Sie mehrere Worktrees: Führen Sie 3-5 Git-Worktrees gleichzeitig aus, jeweils mit einer unabhängigen Sitzung — dies ist eine anerkannte Team-Best-Practice zur Effizienzsteigerung
  • Planen Sie komplexe Aufgaben zuerst: Verwenden SieplanModus, in dem ein Claude den Plan schreibt und ein anderer als Berater fungiert, um ihn zu überprüfen
  • CLAUDE.md nach Fehlern aktualisieren: Nach jeder Fehlerkorrektur fügen Sie einen Hinweis hinzu: "Aktualisieren Sie Ihre CLAUDE.md, machen Sie nicht denselben Fehler noch einmal"
  • Planungsmodus speziell für die Verifizierungsphase aktivieren: Stellen Sie sicher, dass der Verifizierungsprozess sicher und kontrollierbar ist

Häufig gestellte Fragen

Frage: Was ist der Unterschied zwischen Worktree und Branches?

Worktree ist ein unabhängiges Verzeichnis, mit dem Sie gleichzeitig in verschiedenen Verzeichnissen arbeiten können; ein Branch ist eine andere Commit-Historie innerhalb desselben Verzeichnisses. Worktree eignet sich besser für Szenarien, in denen Sie mehrere komplexe Aufgaben gleichzeitig bearbeiten müssen.

Frage: Beeinflusst der von Claude erstellte Worktree das Haupt-Repository?

Nein. Worktree hat ein unabhängiges Verzeichnis, und sein Inhalt wirkt sich nicht auf nicht committete Änderungen im Haupt-Repository aus.

Frage: Wie kann ich Claude dazu bringen, an einem bestimmten Branch zu arbeiten?

Wechseln Sie den Branch, bevor Sie Claude starten, oder verwenden Sieclaude --worktree <name>um automatisch einen Branch zu erstellen.

Frage: Belegen zu viele Worktrees zu viel Speicherplatz?

Git Worktree teilt die Repository-Historie; das neue Verzeichnis enthält nur die Branch-Unterschiede, daher belegt es nur sehr wenig Speicherplatz.

F: Wann wird der Worktree des Subagenten bereinigt?

Bei normalem Abschluss fordert Claude Sie auf zu wählen, ob Sie ihn behalten oder löschen möchten. Worktrees, die durch Abstürze verwaist sind, werden automatisch gelöscht nach mehr alscleanupPeriodDaysder konfigurierten Anzahl von Tagen.

Weitere Erweiterungen