Sooua
登录
返回文章列表
Claude Code··6 分钟阅读

会话管理与多项目切换

一次会话(Session) = 你与 Claude 的一次连续对话,包含:

目标:高效管理多个会话,在不同项目间灵活切换
预计时间:20 分钟
对应官方文档:Sessions


会话是什么?

一次会话(Session) = 你与 Claude 的一次连续对话,包含:

  • 对话历史
  • 加载的上下文文件
  • 记忆和偏好
  • 执行过的命令记录

创建和命名会话

启动时命名

claude --name "修复登录bug"

运行中重命名

> /rename "重构支付模块"

好的命名方便后续查找:

  • ✅ "实现 JWT 认证"
  • ✅ "优化数据库查询 #215"
  • ❌ "临时会话"
  • ❌ "test"

会话持久化

自动保存

所有会话自动保存,存储在:

~/.claude/sessions/

恢复会话

# 继续上次的会话
claude --continue
 
# 查看所有会话
claude --list-sessions
 
# 按名称恢复
claude --continue "修复登录bug"
 
# 按 ID 恢复
claude --continue sess_abc123

会话列表输出示例

Recent sessions:
  1. 修复登录bug        (2 hours ago)   45 messages
  2. 添加单元测试        (yesterday)     120 messages
  3. 重构数据库模型       (2 days ago)    80 messages

分支会话(Fork)

想基于当前会话尝试不同方案?使用分支:

> /fork "方案B:使用Redis缓存"

这会创建一个独立的副本,原会话不受影响。

原会话: "优化数据库查询"
  ├── 分支1: "方案A:加索引"
  └── 分支2: "方案B:使用Redis缓存"

多项目工作

项目隔离

每个项目应该独立启动 Claude:

# 项目 A
cd ~/projects/backend
claude --name "backend-api"
 
# 项目 B
cd ~/projects/frontend
claude --name "frontend-app"

使用 Git Worktree(高级)

同时处理同一项目的多个分支:

# 创建 worktree
git worktree add ../feature-auth feature/auth
 
# 在隔离环境中启动
cd ../feature-auth
claude --name "feature-auth" --worktree

--worktree 确保会话完全隔离,不会互相影响。


会话清理

删除单个会话

claude --delete-session "旧会话名称"

清理所有会话

# 删除超过 30 天的会话
claude --purge-sessions --older-than 30d
 
# 或清空项目级状态
claude project purge

会话导入导出

导出会话记录

# 导出为 Markdown
claude --export-session "会话名称" --format markdown > session.md
 
# 导出为 JSON(含完整元数据)
claude --export-session "会话名称" --format json > session.json

分享会话

> /share

生成分享链接:https://claude.ai/share/abc123

团队成员可以查看会话记录,了解思考过程。


会话最佳实践

场景建议
开始新任务新建会话,避免历史干扰
长任务中断--continue 恢复,不要新建
尝试不同方案/fork 分支
多项目切换每个项目固定会话名
定期清理删除已完成的老会话
重要决策导出记录备档

快捷键速查

操作命令
查看当前会话信息/info
重命名/rename "新名称"
压缩历史/compact
清空对话(保留上下文)/clear
创建分支/fork "名称"
导出记录/export

补充:会话生命周期管理与自动化脚本

会话生命周期流程

实用配置与脚本

示例 1:Shell Alias 快速启动多项目会话

~/.bashrc~/.zshrc 中添加:

# Claude Code 项目会话快捷启动
alias cbe='cd ~/projects/backend && claude --name "backend-$(date +%m%d)"'
alias cfe='cd ~/projects/frontend && claude --name "frontend-$(date +%m%d)"'
alias cdev='cd ~/projects/devops && claude --name "devops-$(date +%m%d)"'
 
# 快速恢复最近会话
alias ccon='claude --continue'
 
# 清理 7 天前会话
alias cpurge='claude --purge-sessions --older-than 7d'

示例 2:Git Worktree + Claude 隔离会话脚本

#!/bin/bash
# claude-worktree.sh - 为指定分支创建隔离 worktree 并启动 Claude
 
BRANCH=$1
WORKTREE_DIR="../worktrees/$BRANCH"
 
if [ -z "$BRANCH" ]; then
    echo "Usage: $0 <branch-name>"
    exit 1
fi
 
# 创建 worktree(如果不存在)
if [ ! -d "$WORKTREE_DIR" ]; then
    git worktree add "$WORKTREE_DIR" -b "$BRANCH"
    echo "Created worktree: $WORKTREE_DIR"
fi
 
# 进入 worktree 启动 Claude
cd "$WORKTREE_DIR" || exit
claude --name "$BRANCH" --worktree

使用方式:

chmod +x claude-worktree.sh
./claude-worktree.sh feature/payment-gateway

示例 3:会话归档与清理脚本

#!/bin/bash
# archive-claude-sessions.sh
 
ARCHIVE_DIR="$HOME/.claude/archives/$(date +%Y-%m)"
mkdir -p "$ARCHIVE_DIR"
 
# 导出所有超过 3 天的会话并压缩
claude --list-sessions --json | jq -r '.[] | select(.age_days > 3) | .name' | while read -r sess; do
    echo "Archiving: $sess"
    claude --export-session "$sess" --format markdown > "$ARCHIVE_DIR/${sess}.md"
done
 
# 压缩归档
tar czf "$ARCHIVE_DIR.tar.gz" "$ARCHIVE_DIR"
rm -rf "$ARCHIVE_DIR"
 
# 删除 30 天前的会话
claude --purge-sessions --older-than 30d
 
echo "Archived to $ARCHIVE_DIR.tar.gz"

实战场景

场景一:多项目并行开发(前后端同时修改)

背景:开发者需要同时处理前端 UI 缺陷和后端 API 调整,两个项目在不同目录,且依赖关系复杂,频繁切换容易混淆上下文。

步骤

  1. 在前端目录启动独立会话:cd ~/frontend && claude --name "fix-login-ui"
  2. 在终端新窗口启动后端会话:cd ~/backend && claude --name "fix-auth-api"
  3. 前端会话中完成 UI 修复后,/export 导出记录
  4. 后端会话修改完接口后,通过 --continue "fix-auth-api" 在次日继续

结果

  • 两个会话完全隔离,前端不会加载后端无关文件,后端也不会看到前端 node_modules
  • 每个会话有独立的对话历史和记忆,AI 始终清楚当前项目的上下文
  • 开发者通过终端多窗口管理,互不干扰,效率提升明显

场景二:紧急 Bug 修复与会话恢复

背景:周五下班前修复了一个紧急 Bug,周一需要继续完善相关测试和文档,但周末期间启动了多个其他临时会话。

步骤

  1. 周五修复时命名会话:claude --name "hotfix-payment-race-condition"
  2. 周一路由到项目目录,查看会话列表:claude --list-sessions
  3. 精确恢复目标会话:claude --continue "hotfix-payment-race-condition"
  4. AI 自动加载之前的上下文和已修改的文件,直接继续编写缺失的测试

结果

  • 无需重新解释问题背景,AI 记住上周五的代码变更和分析结论
  • 避免了新建会话导致的历史信息丢失
  • 命名清晰的会话让在众多历史记录中快速定位成为可能

下一步

03. 提示词工程:Prompt Library 实战

分享

评论

登录 后参与讨论。

加载中…

相关文章