Skip to main content

GitHub原生支援堆疊式PR工作流程,提供gh stack CLI與PR堆疊檢視

Posted in 業界新聞
新聞

堆疊式PR是將大型程式碼變更拆分為多個相互依賴拉取請求的開發方式。在這個結構中,最底層的PR以Main為目標分支,其上每一層PR則以下一層的分支為基底,形成有序的相依鏈。每個PR各自代表一個可獨立審查的原子性變更,讓審查者能逐層檢視,而不必面對一次性提交的大量程式碼。

過去GitHub並未原生支援此工作模式,開發者若要採用堆疊式PR,往往需要採用第三方工具,或手動處理繁瑣的分支同步與重定基底(Rebase)作業。

此次官方整合方案包括PR介面與本地開發兩部分,在PR介面方面,當一個PR屬於某個堆疊時,頁面頂部會顯示Stack Map,呈現整個堆疊的結構與各層狀態,並支援單點導覽至任意層。規則與CI的執行邏輯也有所調整,堆疊中各PR的合併條件,會以最底層PR的基底分支為準,通常就是Main,因此分支保護規則與CI檢查,都會對堆疊中的每一個PR生效,而不只限於最底層PR。

堆疊中的PR必須由下而上依序進行,支援直接合併與合併佇列兩種方式。直接合併時,系統會在所有條件滿足的前提下,將該PR及其下方尚未合併的PR一併處理。合併佇列方面則具備堆疊感知能力,要是最底層PR被移出佇列,其上所有PR也會一同移除。

自動化Rebase是此功能的另一個重點。過去手動管理多個相依分支的Rebase作業是堆疊式PR最耗時的環節,GitHub在PR介面加入Rebase按鈕,可對整個堆疊執行連動Rebase,而CLI端則對應gh stack rebase指令,執行相同的本地操作。當底層PR完成合併後,其餘分支也會自動Rebase,確保下一個PR直接對準Main,可立即進行審查與合併。

gh stack CLI提供本地開發端完整的工作流程支援,涵蓋從建立分支、推送至遠端、建立或更新PR,以及在各層之間切換導覽的完整操作。GitHub說明,使用堆疊式PR並不強制要求安裝CLI,但CLI能有效簡化整體流程。

View original 0 Likes 0 Boosts

Comments (0)

No comments yet.