关于 working-with-graphite
为使用 Graphite 管理代码变更的编码 Agent 提供工作规范,涵盖分支、提交、堆栈更新与 PR 流程。重点是通过 `gt` 命令维护堆栈元数据,并限制未经授权的分支和 PR 操作。
主要功能
- 01Graphite 分支与堆栈规范
- 02提交和变更修改流程
- 03PR 提交与审批规则
- 04冲突处理步骤
- 05中间堆栈分支更新流程
适用场景
- 01规划多分支功能变更
- 02在 Graphite 堆栈中修改已有分支
- 03按规范更新并提交 PR
- 04处理同步或重排时的冲突
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ neekolas/ claude-skills --skill working-with-graphite安装后在 Claude Code 中输入/working-with-graphite确认已加载。
详细介绍
使用 Graphite
核心原则
- 绝不提交到 main 所有提交都必须位于功能分支上
- 除非收到要求,否则不要创建分支 除非明确要求,否则不要创建新分支。
- 绝不使用原始 Git rebase ——始终使用
gt命令来保留堆栈元数据 - 提交时始终将 Claude 设为共同作者
分支策略
- 制定计划时,注明每个工作单元预期使用的分支
- 跨越 > 500 LOC 的工作应拆分到多个分支,并将这些分支依次堆叠
- 按逻辑顺序堆叠分支,每个分支包含独立的功能。
- 每个分支都必须通过所有 lint、检查和测试评估
提交代码
- 使用 git 命令手动暂存受影响文件。不要使用
-a标志自动暂存所有更改。 - 对于新功能,使用
gt modify --commit -m "description of the change"创建提交 - 对现有功能的修改或错误修复,使用
gt modify修改提交
提交更改
- 任务完成后,始终运行
gt restack,并确保任何受影响的上游分支仍然有效(lint 检查通过) - 任务完成后,使用
gt submit --stack --update-only - 如果更改影响较大,请阅读现有 PR 描述并将更改纳入其中。不要覆盖现有描述,以免丢失重要背景信息。
- 将对 PR 描述所做的任何更改提交给用户审批
创建 PR
- 只有在用户明确同意后,才能提交新的 PR。
- 使用
gt submit --draft创建 PR。新 PR 始终以草稿形式提交。 - 提交 PR 后,创建详细的 PR 描述,并使用
gh工具提交 - 提交 PR 描述前,请征求用户批准
处理冲突
在 gt sync、gt restack 或 gt modify 期间发生冲突时:
- 解决受影响文件中的冲突
- 暂存已解决的文件:
git add <files> - 继续:
gt continue或gt continue --all
工作流:更新堆栈中间的分支
gt checkout <target-branch>- 进行编辑
gt modify -a(修改提交并重新堆叠上游分支)gt submit --stack --update-only --no-interactive(推送所有已更新的分支)
常见注意事项
- 绝不使用
git rebase -i——这会破坏 Graphite 元数据。改用gt move。 - 绝不使用
git branch -d——使用gt delete保留元数据。 - 绝不使用
git commit --amend——使用gt modify -a,它也会重新堆叠分支。 gt rename会破坏 PR 链接 ——避免重命名已有 PR 的分支。- 压缩合并会导致连锁冲突 ——使用
gt sync+gt restack解决。
评论
支持 Markdown