Skip to main content

将其他工具与堆叠式拉取请求配合使用

将堆积拉取请求与 Jujutsu、Sapling 或 git-town 等工具配合使用。

注意

此功能以公共预览版提供,可能会发生更改。

堆叠式拉取请求是建立在标准 Git 分支和普通拉取请求之上的,因此你可以选择使用 gh stack CLI 以外的工具来进行本地工作流程。 如果您使用其他工具(例如 Jujutsu(jj)、Sapling 或 git-town)管理分支链,则可以使用 gh stack link 命令在 GitHub 上将这些分支作为堆栈打开。

gh stack link 命令仅调用 GitHub API 来创建堆叠拉取请求 , 它不会创建任何本地跟踪。 如果某个分支已有开放的拉取请求,link 会直接使用该拉取请求;否则,它会以正确的基础分支创建一个草稿拉取请求。

将分支链接为堆栈

  1. 使用所选工具在本地创建分支链。 例如,使用 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 @
    
  2. 推送这些分支,并将它们链接成一个堆栈,按从底部到顶部的顺序列出。

    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 rebasegh stack sync 以及堆栈导航等命令,请改用 gh stack init 接管你现有的分支,然后再提交它们。

gh stack init change1 change2 change3
gh stack submit

延伸阅读