Claude Code -14 不失控指南:本地 Git + 检查点 + 沙箱,三块拼图补齐安全边界

6 阅读6分钟

Claude Code 不失控指南:本地 Git + 检查点 + 沙箱,三块拼图补齐安全边界

你的 Claude Code 改了 20 个文件全改错了怎么办?执行了一个不该跑的命令怎么办?改完代码谁来审查?

这三个问题分别对应三个答案:本地 Git(分支隔离+自动化检查)、检查点(本地后悔药)、沙箱(安全围栏)。

三块拼图补齐,Claude Code 既能自主工作,又不会失控。


一、本地 Git 管控——不依赖云端,自己就是 CI/CD

Claude Code 改完代码,谁来审查?类型安全、性能风险、安全风险、最佳实践——这些检查不一定非要上 GitHub Actions。用本地 Git 就能搞定。

分支隔离:Claude 的工作区和你互不干扰

核心思路:永远不要让 Claude 直接在主分支上改代码。

git checkout -b claude/fix-layout    # Claude 在专属分支工作
# Claude 大刀阔斧改代码...
git diff                              # 你来审查改了什么
git merge claude/fix-layout           # 确认没问题再合入

Claude 改错了?主分支纹丝不动。改对了?一条 merge 搞定。分支就是你的第一道防线。

Claude Code + Git 的标准工作流

1. git checkout -b claude/xxx       →  开分支
2. Claude 改代码                     →  检查点自动保底
3. git diff                          →  人工审查改动
4. Claude /review                    →  AI 二次审查(架构合规、代码质量)
5. git commit                        →  确认无误,提交存档
6. git merge → 主分支                 →  确认合入

不用推到远程,不用等 CI 排队,本地一条龙搞定。改错了分支删掉重来,改对了合入主分支,整个过程在本地闭环。


二、检查点系统——你的本地后悔药

光有云端自动化还不够。本地开发时,Claude 大刀阔斧改了 20 个文件结果改错了,难道要一个个手动撤回?

自动存档,零配置

Claude Code 会在每次文件编辑前自动创建检查点。你不用做任何配置,它默认就在工作。

两种回退方式

方式操作场景
快捷键Esc × 2Claude 正在改代码,你发现方向不对,秒中断
命令/rewind改完发现不对,回退到之前的某个节点

三种回退策略

回退时你可以选择:

  • 恢复代码和对话——最彻底,代码回滚,对话也回滚,像什么都没发生过
  • 仅恢复代码——代码回滚,但保留对话记录,方便你回顾 Claude 做了什么
  • 从此处总结——把之前的对话压缩成摘要,释放上下文空间,从回退点重新开始

检查点 vs Git:互补不是替代

维度检查点Git
定位"本地取消""永久历史"
粒度秒级回退,会话级别commit 级别的版本管理
适用场景快速调试和回退长期历史和协作
生命周期会话结束后逐渐消失永久保存

最佳实践:

  1. 让 Claude 大胆改 → 检查点保底
  2. 改好了确认没问题 → git commit 存档
  3. 改错了 → Esc×2 回退,重新来

重要限制: 检查点只追踪 Claude 编辑器工具的文件操作,以下操作不在追踪范围内:

  • bash 命令中的 rmmvcp——这些是永久操作
  • 你在 Claude 之外手动做的修改
  • 其他并发会话的修改

所以 bash 命令的防护,得交给沙箱。


三、沙箱系统——用 OS 级隔离取代权限疲劳

你有没有过这种经历——Claude 要执行一个 npm 命令,弹出权限确认,你看了一眼点"允许"。又弹一个,又点。再弹一个,继续点。到第十个的时候你已经不看内容直接点了。

这就是"权限疲劳"——确认太多等于没有确认。

沙箱解决的就是这个问题:用 OS 级别的隔离代替频繁的权限弹窗。安全边界内的操作自动放行,超出边界的操作直接拦截。

一键启用

/sandbox

启用后,Claude 在沙箱边界内的 bash 命令不再弹出权限确认——安全且顺畅。

双层隔离架构

文件系统隔离:

  • 可写入:当前工作目录及子目录(默认)
  • 可读取:整个系统(除显式拒绝的路径)
  • 被拦截:工作目录外的写入操作

Claude 可以读你的项目文件、修改项目代码,但不能碰 ~/.bashrc~/.ssh//usr/local/bin 或任何项目目录之外的东西。

网络隔离:

  • 默认限制网络访问到明确允许的域名
  • npm/yarn 等包管理器的域名自动允许
  • 其他出站请求需要显式配置

技术实现:

  • macOS → Seatbelt(苹果的沙箱框架)
  • Linux → bubblewrap(容器级隔离)

这是操作系统内核级别的隔离,不是靠"信任"。

沙箱 + 权限:双层防护

层级管什么怎么管
权限系统Claude 的内置工具(Read、Write、Edit、Bash)白名单/黑名单规则
沙箱Bash 命令在操作系统层面的实际执行OS 内核级隔离

关键区别:没有沙箱时,权限系统的 deny 规则只对 Claude 的内置工具生效——如果 Claude 通过 bash 命令访问文件,deny 规则管不到。开启沙箱后,同样的限制在 OS 层面强制执行,bash 命令也被管住了。

两层合在一起,权限弹窗减少约 80%,但安全性反而更高。

沙箱适用场景

  • 安全代码执行
  • 代码测试与调试
  • 编程学习
  • 自动化任务开发

四、自主运行模式——让 Claude 真正"自己干"

有了上面的安全基础,才能放心让 Claude 自主运行。

子代理并行

对 src/components/ 下的所有组件做一次全面审查:
代码质量、安全扫描、测试覆盖率检查,同时进行

Claude 会把任务分配给多个子代理并行执行,然后汇总结果,你只需要等一份汇总报告。

后台任务

启动 npm run dev,然后帮我修复首页的布局问题

Claude 会在后台启动 dev server,同时在前台改代码,改完还可能在浏览器里验证效果。

无人值守的安全策略

必须开启:

  • /sandbox(OS 级隔离)
  • 检查点(自动存档,改错可回退)
  • Git 分支隔离

建议配置:

  • PreToolUse Hook 拦截高危命令
  • 敏感文件保护
  • --max-turns 设上限,防止 Claude 无限循环

监控方式:

  • Notification Hook → 桌面通知
  • Stop Hook → 记录日志
  • 回来后 git diff 看改了哪些文件

口诀:分支隔离 + 沙箱围栏 + 检查点兜底


五、小结

第一,本地 Git 就是你的 CI/CD——分支隔离让 Claude 的改动和你互不干扰,人工审查 + AI 审查双重把关,整个审查流程在本地闭环,不依赖任何云端服务。

第二,检查点是你的"后悔药"——Claude 每次编辑前自动存档,Esc×2 秒回退。三种回退策略覆盖不同场景。但 bash 命令不在追踪范围内,所以 Hook 拦截依然重要。

第三,沙箱用 OS 级隔离取代权限疲劳——/sandbox 一键启用,文件系统和网络双层隔离,权限弹窗减少约 80%。和权限系统形成双层防护:权限管工具,沙箱管命令。

三块拼图补齐:本地 Git 管云端级别的自动化,检查点管本地回退,沙箱管安全边界。 Claude Code 从此既能自主工作,又不会失控。