Git 操作与权限管理
Claude Code 如何与 Git 集成,以及权限系统的工作方式
Git 集成:不只是帮你 commit
Claude Code 对 Git 的理解远不止 git add 和 git commit。它能做的事情包括:
- 自动 commit:完成一个功能后,Claude 会自动生成有意义的 commit message 并提交
- 分支管理:创建特性分支、切换分支、合并分支
- 代码回滚:发现改错了,帮你 revert 到之前的状态
- PR 创建:直接帮你创建 Pull Request,附带描述
- 冲突解决:遇到 merge conflict,帮你分析并解决
你甚至可以让它帮你做 Code Review:
看一下 feature/user-auth 分支相比 main 的改动,
帮我审查一下有没有安全隐患或性能问题/permissions 命令:预授权
每次 Claude 要执行命令都弹确认框,很烦对不对?用 /permissions 命令可以预先授权一些常见操作。
在 Claude Code 会话中输入 /permissions,然后添加规则:
# 允许读取任何文件
Allow: Read any file
# 允许所有 npm/pnpm 命令
Allow: npm *
Allow: pnpm *
# 允许运行测试
Allow: npm test
Allow: npx jest *
Allow: npx vitest *
# 允许 git 操作
Allow: git add *
Allow: git commit *
Allow: git push设置完成后,这些操作 Claude 就不会再问你了,直接执行。
[!NOTE] 预授权的规则会保存在项目的
.claude/settings.json中。你可以把它加入.gitignore,或者提交到仓库让团队共享权限配置。
三种权限模式
Claude Code 有三种权限模式,适合不同的使用场景:
| 模式 | 进入方式 | 行为 | 适合场景 |
|---|---|---|---|
| Interactive(默认) | 直接启动 claude | 每个操作都要确认 | 新项目、不熟悉的代码库 |
| Auto | claude --auto 或 Shift+Tab | AI 自动判断是否安全 | 已确认方案、批量操作 |
| YOLO | 在设置中开启 | 几乎不确认,全部自动执行 | 个人实验项目、不怕搞坏 |
[!WARNING] YOLO 模式虽然存在,但不建议在重要项目上使用。它会跳过大部分安全检查,适合那种"大不了
git reset --hard"的场景。
Esc 键与 Rewind 菜单
Esc 键是你的"刹车"和"后悔药":
按一次 Esc:立即停止 Claude 当前正在做的事情。比如它正在写一个很长的文件,你觉得方向不对,按 Esc 就停了。
按两次 Esc:打开 Rewind(回滚)菜单。这个菜单让你选择回滚到对话中的任意一个节点:
Rewind 菜单:
┌─────────────────────────────────────────────┐
│ 选择要回滚到的节点: │
│ │
│ 1. [回滚对话] 只撤销对话内容,保留文件改动 │
│ 2. [回滚代码] 只撤销文件改动,保留对话内容 │
│ 3. [两者都回滚] 对话和文件改动全部撤销 │
│ │
└─────────────────────────────────────────────┘三个选项的区别:
- 回滚对话:Claude 忘记刚才的对话,但代码改动保留。适合你觉得方案可以但想换个方式继续讨论
- 回滚代码:代码恢复到改动前,但对话还在。适合你想保留讨论结果但让 Claude 重新实现
- 两者都回滚:完全回到之前的状态,从头来过
[!NOTE] Rewind 是 Claude Code 最好用的功能之一。不要怕用它。发现方向不对,果断回滚重来,比在错误的方向上纠结强多了。
权限最佳实践
纠正两次不行就停下来重来
这是一条重要的经验法则。如果 Claude 做了一个错误操作,你纠正了一次,它又做错了,你再纠正一次还是不对——这时候不要继续纠正了。
原因很简单:Claude 的上下文里已经积累了两轮错误的信息,继续对话只会越来越偏。
正确的做法:
- 按两次
Esc打开 Rewind 菜单 - 回滚到出错之前的节点
- 换一个更明确的 prompt 重新描述需求
# 不好的方式(在错误上打补丁)
"不对,不是这样,应该是..."
"还是不对,你看这个文件..."
"算了,我给你重新说一遍..."
# 好的方式(果断重来)
[Esc × 2 → Rewind → 回滚到出错前]
"把 user 表加一个 avatar_url 字段,类型是 text,允许为空。
修改 schema 文件和对应的 migration。"其他实践建议:
- 新项目第一周:用 Interactive 模式,每步都确认,了解 Claude 的行为模式
- 确认方案后:切 Auto 模式让 Claude 自由执行,提升效率
- 涉及数据库操作:始终用 Interactive,手动确认每条 SQL
- 定期检查 Git 记录:用
git log --oneline看看 Claude 都做了什么,确保没有偷偷搞事情

