Claude Code Git 工作流
Claude Code 深度集成了 Git 功能,可以用自然语言完成几乎所有 Git 操作,包括创建提交、管理分支、处理合并冲突,以及利用 Git Worktree 实现并行工作流。本章详细介绍如何在 Claude Code 中高效使用 Git。
基础 Git 操作
Section titled “基础 Git 操作”1、查看变更
Section titled “1、查看变更”用自然语言询问即可获取 Git 状态:
我改了哪些文件? __
这次的改动有哪些内容? __
最近 10 次提交都改了什么? __
检查一下当前的 git 状态 __Claude 会自动执行相应的 Git 命令并展示结果。
2、提交代码
Section titled “2、提交代码”简单提交:
提交这次的改动 __
把这次的修改提交 __带描述的提交:
把这次的修改提交,commit 信息说明修复了登录验证的 bug __Claude 会根据实际改动内容自动生成符合规范的 commit 信息。
3、分支管理
Section titled “3、分支管理”新建一个 feature/user-profile 分支 __
切换到 develop 分支 __
把 main 分支的最新改动合并进来 __
查看所有分支 __
删除已合并的分支 __处理合并冲突
Section titled “处理合并冲突”1、自动解决简单冲突
Section titled “1、自动解决简单冲突”帮我解决合并冲突 __
这个文件有冲突,帮我看看哪个版本是正确的 __Claude 会分析冲突内容,根据项目上下文选择合适的版本或提出解决方案。
2、人工介入解决复杂冲突
Section titled “2、人工介入解决复杂冲突”当冲突过于复杂时,Claude 会向你说明各种选择的利弊:
这个冲突涉及架构设计,你来决定保留哪个方案:A. 保留我们的实现...B. 保留引入的优化...__Claude Code 在执行任何文件修改前都会展示修改内容并请求你的确认。对于合并冲突这类高风险操作,更要仔细审查每个修改。
Git Worktree 并行工作流
Section titled “Git Worktree 并行工作流”Git Worktree 允许你在不同目录中同时处理不同的分支,而无需切换分支或克隆仓库。这是 Claude Code 中最强大的并行工作方式之一。
1、使用 Claude 创建 Worktree
Section titled “1、使用 Claude 创建 Worktree”启动 Claude 时指定 worktree:
claude --worktree feature-auth __这会自动:
- 在
.claude/worktrees/feature-auth/创建新目录 - 基于
origin/HEAD(远程默认分支)创建新分支 - 在新目录中启动独立 Claude 会话
同时开多个 worktree:
claude --worktree bugfix-123 __
claude --worktree __不指定名称时,Claude 会自动生成有趣的名字(如 bright-running-fox)。
2、Worktree 属性
Section titled “2、Worktree 属性”| 属性 | 值 |
|---|---|
| 位置 | <repo>/.claude/worktrees/<name> |
| 分支命名 | worktree-<name> |
| 基础分支 | 远程 origin/HEAD 指向的分支 |
3、Worktree 生命周期
Section titled “3、Worktree 生命周期”| 场景 | 行为 |
|---|---|
| 没有做出任何修改 | Worktree 和分支自动删除 |
| 存在变更或提交 | Claude 提示你选择保留或删除 |
| Claude 崩溃导致孤立 worktree | 超过 cleanupPeriodDays 设置的天数后自动删除 |
4、复制 .gitignore 文件到 Worktree
Section titled “4、复制 .gitignore 文件到 Worktree”在项目根目录创建 .worktreeinclude 文件,指定需要复制到 worktree 的 gitignore 文件:
.env.env.localconfig/secrets.json __只有匹配某个模式 且 被 gitignore 的文件才会被复制。
5、手动管理 Worktree
Section titled “5、手动管理 Worktree”如果需要更多控制,可以手动管理:
# 创建 worktree 并指定分支git worktree add ../project-feature-a -b feature-a
# 使用已有分支创建 worktreegit worktree add ../project-bugfix bugfix-123
# 在 worktree 中启动 Claudecd ../project-feature-a && claude
# 完成后清理git worktree listgit worktree remove ../project-feature-a __建议将
.claude/worktrees/加入.gitignore,避免 worktree 内容在主仓库中显示为未跟踪文件。
子代理 Worktree 隔离
Section titled “子代理 Worktree 隔离”子代理可以使用 worktree 隔离功能,实现完全独立的并行工作:
方式一:让 Claude 自动处理
让子代理使用 worktree 来并行处理这些任务 __方式二:在子代理配置中指定
---
name: experimental-refactor
description: 在隔离的 worktree 中尝试重构方案
isolation: worktree # 在临时 worktree 中运行
tools: Read, Write, Edit, Bash
---
你可以在隔离环境中自由修改,不会影响主分支。
完成后总结改动和方案是否成功。
__
子代理 Worktree 特点
Section titled “子代理 Worktree 特点”- 每个子代理自动获得独立的 worktree
- 任务完成后自动清理 worktree
- 修改不会影响主仓库
- 适合探索性任务和方案对比
Pull Request 工作流
Section titled “Pull Request 工作流”1、创建 PR 的步骤
Section titled “1、创建 PR 的步骤”第一步:让 Claude 总结变更
总结一下我对认证模块做的改动 __第二步:生成 PR
创建一个 PR __第三步:完善 PR 描述
在 PR 描述中补充更多关于安全改进的内容 __2、PR 会话关联
Section titled “2、PR 会话关联”使用 gh pr create 创建 PR 时,Claude 会话会自动关联到该 PR:
- 会话链接到 PR 后,可以从 PR 恢复对话
- 使用
claude --from-pr <number>恢复关联的会话
3、使用 GitHub CLI
Section titled “3、使用 GitHub CLI”Claude 了解如何使用 gh CLI 工具。如果没有安装 gh,Claude 可以读写 GitHub API,但功能有限。
# Claude 可以执行的操作gh pr create --title "Fix login bug"gh pr view --commentsgh pr diffgh issue create --title "Bug report"__会话管理与 Git 集成
Section titled “会话管理与 Git 集成”1、恢复之前的会话
Section titled “1、恢复之前的会话”| 命令 | 功能 |
|---|---|
claude --continue | 继续当前目录最近的对话 |
claude --resume | 打开会话选择器或按名称恢复 |
claude --from-pr 123 | 恢复与特定 PR 关联的会话 |
2、会话选择器 Git 功能
Section titled “2、会话选择器 Git 功能”3、会话元数据显示
Section titled “3、会话元数据显示”会话选择器显示以下信息:
- 会话名称或初始提示
- 上次活动距今时间
- 消息数量
- Git 分支(如果有)
4、分支会话
Section titled “4、分支会话”使用 /branch、/rewind 或 --fork-session 创建的会话会分组在根会话下,方便管理。
计划模式与安全分析
Section titled “计划模式与安全分析”计划模式(Plan Mode)使用只读操作安全地分析代码库,不会执行任何写操作。
启动计划模式
Section titled “启动计划模式”claude --permission-mode plan __或者在会话中运行一次性查询:
claude --permission-mode plan -p "分析认证系统并提出改进建议"__在 settings.json 中配置默认模式
Section titled “在 settings.json 中配置默认模式”{
“permissions”: {
“defaultMode”: “plan”
}
}
__
典型工作流示例
Section titled “典型工作流示例”工作流一:多任务并行开发
Section titled “工作流一:多任务并行开发”# 场景:同时开发三个功能,但不想切换分支
> 启动三个 worktree,分别处理登录重构、支付集成和性能优化> 在每个 worktree 中独立工作,完成后合并到主分支 __工作流二:Bug 修复流程
Section titled “工作流二:Bug 修复流程”# 第一步:描述问题> 用户反馈:用户登出后刷新页面仍然显示已登录
# 第二步:创建修复分支> 创建一个 bugfix/session-cookie 分支来修复这个问题
# 第三步:分析与修复> 先分析可能的原因,在 bugfix 分支中修复
# 第四步:提交并创建 PR> 提交修复并创建一个 PR __工作流三:代码审查
Section titled “工作流三:代码审查”# 审查特定文件> 帮我审查 src/payment/processor.ts,重点关注错误处理
# 审查 git 改动> 审查我这次的所有改动,看看有没有明显的问题
# 在独立分支中审查> 创建一个 worktree 来审查这个重构方案 __工作流四:功能开发与验证
Section titled “工作流四:功能开发与验证”# 主会话:实现新功能> 实现用户资料编辑功能
# 子代理:并行运行测试> 在子代理中运行所有测试,只返回失败的测试和根因
# 子代理:检查代码规范> 使用子代理审查代码是否符合项目规范
# 完成后:创建 PR> 创建一个 PR 并添加详细的描述 __非 Git 版本控制系统
Section titled “非 Git 版本控制系统”对于 SVN、Perforce 或 Mercurial 用户,Claude Code 支持通过钩子扩展:
配置自定义钩子
Section titled “配置自定义钩子”在 .claude/settings.json 中配置:
{
“hooks”: {
“WorktreeCreate”: ”./scripts/create-worktree.sh”,
“WorktreeRemove”: ”./scripts/remove-worktree.sh”
}
}
__
这些钩子替换默认的 git 行为。使用钩子脚本时,在脚本内部复制本地配置文件,而不是使用 .worktreeinclude。
Anthropic 内部团队最佳实践
Section titled “Anthropic 内部团队最佳实践”- 多开 worktree :同时跑 3-5 个 git worktree,每个开一个独立会话,这是团队公认的提效最佳实践
- 复杂任务先规划 :使用
plan模式让一个 Claude 写计划,另一个当幕僚审查 - 错误后更新 CLAUDE.md :每次纠错后加一句”更新你的 CLAUDE.md,别再犯同样的错”
- 验证环节专门进计划模式 :确保验证过程安全可控
Q:Worktree 和分支有什么区别?
Worktree 是独立的目录,可以在不同目录同时工作;分支是同一目录中的不同提交历史。Worktree 更适合需要同时处理多个复杂任务的场景。
Q:Claude 创建的 Worktree 会不会影响主仓库?
不会。Worktree 有独立的目录,内容不会影响主仓库的未提交更改。
Q:如何让 Claude 在特定分支上工作?
先切换分支再启动 Claude,或者使用 claude --worktree <name> 自动创建分支。
Q:Worktree 太多会不会占用太多空间?
Git Worktree 共享仓库历史,新目录只包含分支差异,所以占用空间很小。
Q:子代理的 Worktree 什么时候清理?
正常完成时,Claude 会提示你选择保留或删除。因崩溃孤立的 worktree 会在超过 cleanupPeriodDays 设置的天数后自动删除。
原文链接: https://www.runoob.com/claude-code/claude-code-git-workflow.html