第 3 章 第一次会话

举报
chunkj 发表于 2026/11/04 12:55:44 2026/11/04
【摘要】 第 3 章 第一次会话声明:本文涉及的 Claude Code 为 Anthropic 公司提供的第三方命令行工具,非华为云产品。本文仅从技术实践角度介绍其使用方法,帮助开发者在华为云生态中更高效地开展工作。相关功能与版本以 Anthropic 官方文档为准。适用版本:Claude Code 2.1.x 3.1 进入正确的目录这一步 90% 的新手做错。Claude Code 把这个目录当...

第 3 章 第一次会话

声明:本文涉及的 Claude Code 为 Anthropic 公司提供的第三方命令行工具,非华为云产品。本文仅从技术实践角度介绍其使用方法,帮助开发者在华为云生态中更高效地开展工作。相关功能与版本以 Anthropic 官方文档为准。

适用版本:Claude Code 2.1.x


3.1 进入正确的目录

这一步 90% 的新手做错。Claude Code 把这个目录当成它的世界:它能读这里的一切,也只默认能改这里的一切。

cd ~/code/my-project      # 换成你的项目路径
pwd                       # 确认一下
ls                        # 确认里面是你想让它看的文件
claude

⚠️ 踩坑提醒:不要在 ~(home 目录)里启动。那等于把你的 .ssh、.aws、浏览器配置、所有项目全部暴露给它。先 cd,再 claude。

如果项目确实分散在多个目录,用 --add-dir 额外授权,别用 home 目录:

claude --add-dir ../shared-lib

💡 华为云提示:如果你的项目托管在 GitCode(码道)上,可以先通过 git clone 将仓库克隆到本地工作目录,再在该目录下启动 Claude Code。这样 Claude Code 就能直接读取和管理你的 GitCode 仓库代码。


3.2 认识启动界面

启动后你会看到类似:

 ██████╗ ██╗      █████╗ ██╗   ██╗██████╗ ███████╗
...
  2.1.296 (Claude Code)              模型:Sonnet 5.5
  工作目录:~/code/my-project

下面是一个输入框。关键元素:

元素 含义
版本号 出问题时先报这个
模型名 当前用的模型;用 /model 切换
工作目录 它能看到的根目录
输入框上方的提示 权限模式(如 ⏸ plan mode on)、上下文占用提示
底部状态栏 快捷键提示、可用的 slash 命令入口

输入框里:

  • 直接打字 → 发送给 Claude
  • / → 打开命令与技能列表
  • @ → 引用文件
  • ! → 直接执行 shell 命令

(早期的 # 快速写记忆快捷方式已在 v2.0.70 移除,现在直接说「记住……」即可。)

(每个前缀的完整用法见第 4 章。)


3.3 第一步:让它读懂你的项目

不要一上来就让它改代码。先用只读问题建立信任,同时观察它的工作方式。

这个项目是做什么的?
用了哪些技术和框架?
入口文件在哪?目录结构是怎么组织的?
解释一下 src/auth/ 是怎么处理会话的

📘 官方:Claude Code 会按需读文件,你不需要手动把文件内容贴进去。

观察它在干什么:你会看到它调用 Glob(找文件)、Grep(搜内容)、Read(读文件)的工具调用摘要。默认是折叠显示的一行摘要,按 Ctrl+O 可以切换详细程度。

🔍 补充细节:这是建立直觉的关键时刻——注意它读了几个文件、读了哪些。如果你觉得「它怎么读了这么多无关文件」,说明你的提问太宽泛了(见第 6 章)。


3.4 第二步:做第一处修改

选一个小且安全的改动:

给主文件加一个 hello world 函数

或者更贴近真实工作:

给 README 加上安装说明
给 foo.py 里的 parse_date 函数加个 docstring

它会做什么:

  1. 找到相关文件(Glob / Grep)
  2. 读文件(Read)
  3. 生成修改(Edit / Write)
  4. 如果是交互模式且权限模式是 Manual,会弹出一个 diff 让你确认

看到 diff 时,你可以:

  • y / 选 Yes → 接受
  • n / 选 No → 拒绝
  • 直接打字 → 告诉它哪里不对,它重新来

📘 官方:按 Shift+Tab 可以循环切换权限模式,决定它是否需要你逐条批准。模式详解见第 7 章。


3.5 第三步:用 git 说话

Claude Code 和 git 是天生一对,因为它本来就在你的终端里。

我改了哪些文件?
commit my changes with a descriptive message
新建一个分支叫 feature/quickstart
看一下最近 5 条提交
帮我解决合并冲突

📘 官方:它会暂存改动、写提交信息、建分支、开 PR。开 PR 需要对应平台的 CLI 工具(见 3.9)。

💡 华为云提示:如果你的代码托管在 GitCode 上,Claude Code 同样可以通过 git 命令完成提交、分支管理等操作。对于创建合并请求(MR),可配合 GitCode CLI 或通过 GitCode API 实现。


3.6 会话是怎么保存的

每一条消息、每一次工具调用和结果,都写进一个纯文本 JSONL 文件:

~/.claude/projects/<项目路径编码>/<会话 ID>.jsonl

项目路径里的非字母数字字符会被替换成 -,例如 /Users/you/my-app → -Users-you-my-app。

📘 官方:正是这个机制让回滚、恢复、分叉成为可能(见第 7 章 checkpointing)。默认保留 30 天(cleanupPeriodDays)。

恢复与分叉

命令 作用
claude 新会话
claude -c / claude --continue 继续当前目录最近一次会话
claude -r / claude --resume 打开会话选择器,可带搜索词
claude --resume <session-id> 直接恢复指定会话
claude --fork-session 配合 resume/continue,复制历史到新会话 ID,原会话不变
claude -n <名字> 给会话起名,便于之后找

会话内:

命令 作用
/resume 切换到别的会话
/rename 重命名当前会话
/branch 从当前点分叉出一个新会话
/export 导出会话

🔍 补充细节:把会话当成分支来管理。一个工作流一个会话,起个描述性名字(oauth-migration),比「那个改登录的会话」好找一万倍。

分支切换时会发生什么

Claude 看到的是当前分支的文件。你切分支,它看到的是新分支的文件,但对话历史不变——它记得你们之前聊过什么。

⚠️ 踩坑提醒:这意味着你可以在对话中途切分支然后说「现在改新分支上的代码」。但如果两个分支的文件差异很大,先 /clear 再开始更安全。

同一个会话在两个终端打开

Claude Code 会在 ~/.claude/sessions/ 里放锁文件检测并发。同一个会话在第二个终端恢复时,会以「追加」的方式写入同一个 JSONL。不要在两个终端同时操作同一个会话,行为不可预期。


3.7 第一次会话该做与不该做

✅ 该做 ❌ 不该做
从只读的问题开始 一上来就「帮我把这个项目重构了」
一次做一件小事 在一个会话里连续做五件不相关的事
看到错误立刻纠正 忍着看它做完 10 分钟再说「不对」
让它跑测试验证 只看它的总结,不看测试输出
任务切换时 /clear 在同一个会话里从「修 bug」跳到「写周报」

3.8 退出

  • /exit
  • 连按两次 Ctrl+D
  • 按 Ctrl+C(会提示确认)

🔍 补充细节:Ctrl+C 按一次是中断当前操作,连按两次是退出。误按了不要慌。


3.9 建议安装的 CLI 工具

Claude Code 跟命令行工具配合得极好,因为它读得懂 --help。装上以下工具,能力立刻上一个台阶:

GitCode CLI(码道)

如果你的代码托管在华为云 GitCode 上,安装 GitCode CLI 后,Claude Code 可以直接帮你创建合并请求、查看 Code Review、管理 Issue:

# 安装 GitCode CLI(具体安装方式以 GitCode 官方文档为准)
# 安装后完成认证配置
gitcode auth login

💡 华为云提示:GitCode 是华为云提供的代码托管与协作平台。配合 Claude Code 使用,可以实现从代码编写到提交、合并请求的完整闭环。

jq(JSON 处理工具)

用 jq 处理 JSON 输出,配合 claude -p 做管道操作:

# macOS
brew install jq

# Linux(Ubuntu/Debian)
sudo apt-get install jq

# Linux(CentOS/RHEL)
sudo yum install jq

📘 官方:CLI 工具是跟外部服务交互最省上下文的方式。没有对应平台 CLI 时 Claude 也能调 API,但未认证请求经常触发限流。

Claude 甚至能自学它没见过的工具:

用 'foo-cli-tool --help' 了解一下 foo 怎么用,然后用它解决 A、B、C

3.10 在华为云场景中使用 Claude Code

Claude Code 作为通用编码助手,可以与华为云开发工作流结合使用:

场景 说明
管理 GitCode 仓库 在克隆的 GitCode 仓库目录中启动 Claude Code,直接进行代码修改、提交、分支管理
编写华为云 Terraform 配置 让 Claude Code 帮你生成或修改华为云 Terraform(IaC)配置文件,管理云基础设施
开发华为云应用 在本地开发基于华为云 SDK 的应用,Claude Code 辅助编写和调试代码
处理 CI/CD 配置 让 Claude Code 帮你编写或修改 CodeArts 流水线配置文件

⚠️ 注意:Claude Code 不具备直接操作华为云资源的能力。如需创建、修改或查询华为云资源(ECS、VPC、OBS 等),请使用华为云官方工具(如 hcloud CLI)或通过 Terraform 管理。不要将 AK/SK 等凭证信息直接写入代码文件中。


3.11 本章要点

  • 先 cd 到项目根目录,再 claude;绝不在 ~ 里启动
  • 第一次会话:只读提问 → 小改动 → git 操作
  • 会话自动存成 JSONL,可以 -c 继续、-r 选、--fork-session 分叉
  • 一个工作流一个会话,任务切换就 /clear
  • 安装 GitCode CLI 和 jq,让开发流程闭环
  • Claude Code 可与华为云开发工作流结合使用,但不直接操作云资源

下一步 → 第 4 章 交互模式与快捷键

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。