Claude Code 后台会话 worktree 持久化:提交、推送与 Git 分支安全实践指南

发布时间:2026/10/7 12:30:12
Claude Code 后台会话 worktree 持久化:提交、推送与 Git 分支安全实践指南 文档提示工程人工智能【免费下载链接】claude-code-system-promptsAll parts of Claude Codes system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.项目地址https://gitcode.com/gh_mirrors/cl/claude-code-system-prompts点击查看免费下载导读后台会话Background Session在隔离的 git worktree 中完成代码修改后这些成果可能随会话删除而丢失——本指南解析 Claude Code 系统提示中「后台会话 worktree 持久化」规则何时应主动提交并推送、何时必须先征求用户同意以及如何用 Draft PR 保全工作成果。读完本文你将掌握后台作业在 worktree 中的 Git 操作边界、生命周期与安全提交的最佳实践。为什么后台会话的 worktree 修改需要「提交 推送」兜底在 Claude Code 的后台任务模型中一个作业background job运行时会被放入独立的 git worktree 中以隔离并行任务与用户工作副本的相互影响。根据 后台会话指令 的定义后台会话需要遵循「worktree 隔离指引 worktree 持久化指引」的组合约束即模板中的WORKTREE_ISOLATION_INSTRUCTIONS与WORKTREE_PERSISTENCE_GUIDANCE两个变量。后台会话 worktree 持久化指引 的核心逻辑是如果你在进入的 worktree 中做了代码修改结束前应当提交commit——这不需要询问用户如果仓库有远程remote还应推送push。因为 worktree 可能随会话一起被删除而已提交并推送的工作才能幸存。这背后的生命周期事实可以从仓库中的多处提示得到印证Workflow 隔离 worktree 提醒 明确写道你运行在隔离的 git worktree 中仓库的独立工作副本此处改动不影响主工作目录或其他 Agent如果你未做任何改动worktree 会被自动清理做了改动则会保留供审查。ExitWorktree 工具说明 显示会话退出时若仍处于 worktree 中用户会被提示「保留或删除」keep or removeworktree 目录与分支可能被整体删除。因此「提交 推送」是让后台工作成果在主仓库中幸存下来的唯一可靠途径本地分支会随 worktree 删除而消失而推送到远程的分支或基于它打开的 PR不会。核心规则结束前提交、有远程则推送持久化指引给出的默认行为非常简单直接场景行为在你进入的 worktree 中做了代码修改结束前commit无需询问用户仓库配置了远程remote同时push任务本身要求产出 PR基于已推送分支打开 Draft PR用户指令任务描述、CLAUDE.md、memory明确保留 git 控制权遵从用户约束不擅自提交/推送其中「无需询问即可提交」是有明确前提的只有当你这个作业自己通过 EnterWorktree 进入的 worktree才适用这一默认规则。指引同时划出了两条必须「先问再动」的边界本作业没有自己进入 worktree——即当前环境不是你创建的隔离 worktree你正处于用户自己的 checkout主工作目录中——这是用户的主仓库副本任何提交或分支切换都会直接影响用户的工作区。在这两种情况下提交或切换分支之前必须先征求用户同意。这一边界与 后台 worktree 隔离指引 中「仅读写、搜索、回答问题时原地工作」的规则互为补充只有真正在隔离 worktree 中落地改动持久化指引的自动提交权限才生效。Git 控制权例外任务、CLAUDE.md 与记忆的优先权持久化指引明确声明自动提交「holds unless the users instructions, in the task, CLAUDE.md, or memory, reserve git for them」——即存在三处用户指令来源可以保留 Git 控制权覆盖默认的自动提交/推送行为任务task用户对当前作业给出的具体指令CLAUDE.md项目级或会话级指令文件记忆memory来自记忆系统的、关于用户偏好的持久化约束。若这三者中任一来源表达了「Git 操作由用户本人处理」的意图后台 Agent 就必须退让不得擅自提交、推送或切换分支。这也与 EnterWorktree 工具说明 的准则一致——工具只在「用户显式提及 worktree或 CLAUDE.md / memory 指示在 worktree 中工作」时使用用户指令永远优先于系统默认行为。模板变量 GIT_PUSH_SAFETY_NOTE注入的推送安全提示持久化指引模板在头部声明了一个变量variables: - GIT_PUSH_SAFETY_NOTE该变量在正文中以${GIT_PUSH_SAFETY_NOTE}的形式插值于「用户保留 Git 控制权」的例外声明之后、Draft PR 指令之前。从模板结构看它的定位是在默认「提交并推送」规则旁边追加一段与git push 安全性相关的说明例如关于强制推送、推送目标分支或远程仓库的注意事项由宿主环境按当前会话上下文注入具体文案。在仓库中该变量仅出现在这一处模板中见 持久化指引其具体注入值随 Claude Code 版本与运行环境而定——这提醒我们在阅读系统提示时模板中的${变量}插值位都代表一段由运行时补充的上下文敏感内容不能把变量名当作字面文案。配套工具链worktree 的进入、切换与退出生命周期要正确执行「提交 推送」规则需要理解 worktree 会话的完整生命周期。仓库中 EnterWorktree 工具说明 与 ExitWorktree 工具说明 给出了关键细节进入EnterWorktree仅在用户或项目指令显式要求 worktree 时才调用普通建分支、修 bug 需求走常规 git 流程。在 git 仓库中新 worktree 创建于.claude/worktrees/目录下、基于新分支基础 ref 由worktree.baseRef设置决定——fresh默认从origin/默认分支分支head从当前本地 HEAD 分支。仓库外场景则委托给WorktreeCreate/WorktreeRemovehooks 实现与 VCS 无关的隔离。参数name新建与path进入已存在的 worktree互斥可通过path在多个 worktree 间切换切换后先前访问过的 worktree 不再可写需重新以path进入。退出ExitWorktree只作用于本次会话由 EnterWorktree 创建的 worktree对git worktree add手动创建、或其他会话创建的 worktree 一律不处理非 worktree 会话中调用为 no-op。action必填keep保留目录与分支供用户后续回来继续remove删除目录与分支。discard_changes默认 false仅配合remove使用若 worktree 存在未提交文件或未合并到原分支的提交工具会拒绝删除除非显式置为true——这正是持久化指引要求「先提交」的另一层机制保障已提交的工作不会在清理时被轻易丢弃。退出后会话工作目录恢复到进入前的位置并清除 CWD 相关的缓存系统提示段落、记忆文件、plans 目录。这套生命周期解释了持久化指引的底层动机worktree 是一次性、可丢弃的隔离环境只有被推送到远程的提交才是持久的。Draft PR后台工作的正式交付物指引要求「Open a draft PR when the task calls for one」——当任务需要以 Pull Request 形式交付时在完成提交与推送之后应基于已推送的分支打开Draft PR草稿 PR。Draft PR 的意义在于以草稿状态呈现明确表示工作尚在推进、不急于合并审查与后台会话的「异步交付」模式匹配——用户可能稍后才回来查看结果PR 本身即是可追溯的工作记录与后台会话指令中「以用户可执行的报告结束作业」说明做了什么、成果在哪——路径、分支、PR 或答案本身的要求形成闭环分支与 PR 就是报告里「成果在哪」的落点。相关安全实践共享 stash 与 WIP 提交在 worktree 中做「提交」时还需留意 共享 git stash 安全指引 的警告git stash 栈在主 checkout 与所有 worktree 之间是共享的其他 Claude 会话可能并发 push/pop。因此禁用裸git stash/git stash pop可能弹出其他会话的改动优先使用临时 WIP 提交commit来暂存手头工作——这与持久化指引「commit 优先」的思路完全一致确需 stash 时使用git stash push -u -m 唯一标签立即用git stash list --format%H %gs记录条目 SHA恢复用git stash apply sha而非 pop用完按标签重新定位stash{n}后删除。结合持久化指引可以总结出一套后台会话的 Git 安全操作序列进入 worktree → 修改 → 提交必要时以带标签的 WIP 提交暂存→ 有远程则推送 → 需要交付时开 Draft PR → 退出或随会话清理其中每一步都以「不污染用户主工作区、不丢工作成果」为原则。小结后台会话 worktree 持久化规则是 Claude Code 并行任务模型的关键安全设计它用「进入时隔离、结束时提交推送」的方式平衡了后台作业的自动化程度与用户对 Git 仓库的控制权。核心要点可归纳为四条自己在 worktree 中改的代码结束前提交并推送——worktree 可被删除只有已推送的提交幸存用户指令task / CLAUDE.md / memory保留 Git 控制权时自动提交规则让位未进入 worktree 或处于用户主 checkout 时任何提交/切分支前必须先询问任务需要时基于已推送分支打开 Draft PR并在结束报告中交代分支、路径与下一步命令。这套规则对应的提示模板位于 system-prompt-background-session-worktree-persistence-guidance.md与 后台会话指令、后台 worktree 隔离指引 以及 EnterWorktree/ExitWorktree 工具说明共同构成后台作业的完整 Git 安全框架。赞分享文档提示工程人工智能【免费下载链接】claude-code-system-promptsAll parts of Claude Codes system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.项目地址https://gitcode.com/gh_mirrors/cl/claude-code-system-prompts点击查看免费下载相关推荐Claude Code 后台会话工作树隔离指南EnterWorktree 使用时机、执行强制与持久化最佳实践Claude Code 后台会话工作树隔离指南EnterWorktree 使用时机、执行强制与持久化最佳实践 导读 本文围绕 Claude Code 系统提示文档提示工程人工智能oh-my-claudecode PSM 实战指南用 git worktree tmux 为 Claude Code 打造隔离开发会话oh my claudecode PSM 实战指南用 git worktree tmux 为 Claude Code 打造隔离开发会话 Project S人工智能AI Agent多智能体Agent 编排Agent 工作流AI 技能CLI开发工具Blackbird 多平台账号搜索完整指南一个用户名查遍数百个网站Blackbird 多平台账号搜索完整指南一个用户名查遍数百个网站 如果你在排查一个账号的线上痕迹Blackbird 能帮你干完大半的活。它是一款命令行 O网络安全网页爬虫CLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考