注意
此功能以公共预览版提供,可能会发生更改。
使用堆积拉取请求将大型代码更改分解成可以独立查看和合并的较小依赖拉取请求链。
堆栈是同一存储库中的一系列拉取请求,每个拉取请求都面向其下方的拉取请求的分支,形成位于单个分支(通常是主分支)上的有序链。 获取一组较小的拉取请求,而不是一个大型拉取请求。 由于每个拉取请求都有自己的重点差异,因此团队成员可以独立评审和批准每个层。
Prerequisites
- GitHub CLI (
gh) 2.90.0 或更高版本,以及 Git 2.20 或更高版本。- 使用
gh auth login. 进行身份验证GitHub CLI。
- 使用
- 可以推送到的 GitHub 存储库。
安装 CLI 扩展
gh extension install github/gh-stack
gh extension install github/gh-stack
提示
若要将堆积拉取请求与 AI 编码代理一起使用,例如 GitHub Copilot安装 gh-stack 技能。
gh skill install github/gh-stack
gh skill install github/gh-stack
创建第一个堆栈
-
若要初始化堆栈,请导航到存储库并运行以下命令。 这会创建跟踪条目和第一个分支。
Shell gh stack init
gh stack init系统会提示你为第一个分支命名。 默认情况下,堆栈使用存储库的默认分支(例如
main),作为中继,但堆栈可以面向任何分支。 -
像往常一样处理第一个分支:编写代码、暂存更改和提交。
# ... write code ... git add . git commit -m "helpful-commit-message" -
准备好下一个逻辑工作单元后,向堆栈顶部添加新分支。
Shell gh stack add BRANCH-NAME # ... write code ... git add . git commit -m "Another-helpful-commit-message"
gh stack add BRANCH-NAME # ... write code ... git add . git commit -m "Another-helpful-commit-message" -
将所有分支推送到远程。
Shell gh stack push
gh stack push -
创建拉取请求并将其链接为堆栈。GitHub
Shell gh stack submit
gh stack submit每个拉取请求都是使用正确的基分支创建的。 你的第一个分支目标
main,下一个分支面向第一个分支BRANCH-NAME。 审阅者将只看到该层的差异。 拉取请求作为堆栈 GitHub 自动链接在一起,你可以看到其顺序并在它们之间快速导航。 -
查看堆栈并随时查看完整状态。
Shell gh stack view
gh stack view此命令显示所有分支、其拉取请求链接、状态以及每个分支的最新提交。
-
用于
gh stack add -Am "MESSAGE"在一个步骤中暂存所有更改、提交和创建下一分支。 不需要单独git add``git commit或 。 如果当前分支尚未提交,则提交将到达该处;如果已提交,则会创建一个新分支。# Commit lands on the current branch gh stack add -Am "Auth middleware" # Current branch already has commits, so this creates the next branch gh stack add -Am "API routes" -
准备就绪后,推送所有内容并创建拉取请求。
Shell gh stack submit
gh stack submit