这个项目能做什么
gh stack 是一个 GitHub CLI 扩展,用于管理堆叠分支和拉取请求。堆叠 PR 将大型更改拆分为一系列相互依赖的小型、可审查的拉取请求;该工具自动化了分支创建、保持分支变基、设置正确的 PR 基础分支以及在各层之间导航。
安装方式为 `gh extension install github/gh-stack`,需要 GitHub CLI v2.0 或更高版本。还可以为 AI 编码代理安装可选技能。
核心模型:堆叠是一个有序的分支列表,每个分支基于其下方的分支,最底部分支基于主干分支(通常是 main)。堆叠元数据以 JSON 格式存储在本地 `.git/gh-stack` 中,变基状态存储在单独的文件中。
命令包括:
- init:初始化堆叠,可选择采用现有分支,并配置主干。
- add:在堆叠顶部创建新分支,可选择暂存和提交更改。
- checkout:按堆叠编号、PR 编号、PR URL 或分支名称检出堆叠,包括本地和远程堆叠的交互式选择器。
- rebase:获取并级联变基整个堆叠,支持 downstack/upstack/no-trunk 范围以及继续/中止处理。
- modify:交互式终端界面,用于删除、折叠、插入、重命名和重新排序分支。
- sync:获取、协调远程堆叠、快进主干、级联变基、推送、同步 PR 状态、链接堆叠,并可选择清理已合并的分支。
- push:推送活动分支,并逐分支进行 force-with-lease 检查。
- submit:推送分支并创建或更新 PR 和 GitHub 堆叠,支持交互式编辑器或自动模式。
- link:从分支名称或 PR 编号创建或更新 GitHub 堆叠,无需本地跟踪,适用于其他本地分支工具。
- merge:以全有或全无的方式合并一个或多个堆叠 PR,支持合并方式选项和合并队列感知。
- view:显示堆叠分支、顺序、PR 链接和最近提交,支持简短和 JSON 输出。
- unstack/delete:从本地跟踪和/或 GitHub 中移除堆叠。
- 导航命令(up、down、top、bottom)在当前堆叠中的分支之间移动。
README 详细记录了标志、示例、前置条件以及行为,如分歧处理和合并队列交互。
评论
0 评分人数达到10人后显示
登录后参与讨论。