注意
此功能以公共预览版提供,可能会发生更改。
堆叠式拉取请求是建立在标准 Git 分支和普通拉取请求之上的,因此你可以选择使用 gh stack CLI 以外的工具来进行本地工作流程。 如果您使用其他工具(例如 Jujutsu(jj)、Sapling 或 git-town)管理分支链,则可以使用 gh stack link 命令在 GitHub 上将这些分支作为堆栈打开。
该 gh stack link 命令仅调用 GitHub API 来创建堆叠拉取请求 , 它不会创建任何本地跟踪。 如果某个分支已有开放的拉取请求,link 会直接使用该拉取请求;否则,它会以正确的基础分支创建一个草稿拉取请求。
将分支链接为堆栈
-
使用所选工具在本地创建分支链。 例如,使用 Jujutsu 时:
jj new main -m "first change" jj bookmark create change1 --revision @ jj new -m "second change" jj bookmark create change2 --revision @ jj new -m "third change" jj bookmark create change3 --revision @ -
推送这些分支,并将它们链接成一个堆栈,按从底部到顶部的顺序列出。
gh stack link change1 change2 change3这会推送分支,为每个分支创建对应正确基础分支的拉取请求,并将这些拉取请求在 GitHub 上关联为一个堆栈。
添加到现有堆栈
若要向创建的 link堆栈添加更多分支,请从下到上再次运行 gh stack link ,其中包含堆栈中拉取请求和分支 的完整 列表。 可以按数字引用现有拉取请求。
gh stack link 123 124 125 change4 change5
设置基础分支或创建拉取请求
默认情况下,link 会以仓库的默认分支为目标,并创建草稿拉取请求。 若要更改此行为,请执行以下操作:
- 使用
--base来指定不同的主干分支。 - 使用
--open将拉取请求标记为可供审阅,而不是草稿。
gh stack link --base develop --open change1 change2 change3
采用分支进行完整的本地跟踪
如果你想要完整的本地堆栈跟踪能力,这样就可以使用 gh stack rebase、gh stack sync 以及堆栈导航等命令,请改用 gh stack init 接管你现有的分支,然后再提交它们。
gh stack init change1 change2 change3
gh stack submit