)
gh stack view完全參考用--short和--json掌握Stack狀態(tài)【免費下載鏈接】gh-stackGitHub Stacked PRs項目地址: https://gitcode.com/GitHub_Trending/ghst/gh-stackgh stack view是 gh-stack 堆疊 PR 工具中查看 Stack 狀態(tài)的核心命令。一條命令列出當(dāng)前 Stack 的所有分支、每個 PR 的合并/排隊/開放狀態(tài)和是否需要 rebase并提供三種輸出形態(tài)交互式視圖、--short緊湊視圖和--json機器可讀視圖——前兩者給人看最后一種專為腳本和 AI Agent 設(shè)計 。三種查看模式各取所需gh stack view的完整實現(xiàn)位于 cmd/view.go三種模式一眼區(qū)分模式命令適用場景特點交互式 TUIgh stack view日常開發(fā)全屏界面支持鼠標(biāo)可切換分支緊湊視圖gh stack view --short快速掃一眼每個分支一行帶狀態(tài)圖標(biāo)JSON 輸出gh stack view --json腳本/CI/AI無交互提示帶類型化退出碼無論使用哪種模式命令都會先從 GitHub 同步一次 PR 最新狀態(tài)再展示所以你看到的就是當(dāng)前真實狀態(tài)而不是本地緩存的舊數(shù)據(jù)。默認(rèn)交互視圖分支、提交、PR 一站看全在交互式終端中直接運行g(shù)h stack view會打開一個全屏 TUI基于 Alt Screen 渲染支持鼠標(biāo)操作。它會展示 每個分支在 Stack 中的位置和當(dāng)前分支高亮 每個分支的最新提交短 SHA、相對時間如 3 days ago和提交標(biāo)題 分支對應(yīng)的 PR 鏈接? 狀態(tài)圖標(biāo)下一節(jié)詳解在 TUI 中選定某個分支后退出還可以直接把它 checkout 出來省去再敲一次git checkout。在非交互式環(huán)境如管道或 CI中命令會自動退化為靜態(tài)文本輸出并通過分頁器展示——遵循GIT_PAGER、PAGER環(huán)境變量默認(rèn)less -R。--short 緊湊模式分支狀態(tài)一行看穿gh stack view --short--short可簡寫為-s輸出緊湊的單行視圖是整個命令中信息密度最高的模式。它的結(jié)構(gòu)自上而下是Stack #NStack 編號粗體與 GitHub 界面上的編號一致活躍分支區(qū)當(dāng)前分支以?開頭并標(biāo)注(current)queued分隔線進(jìn)入合并隊列的分支merged分隔線已合并的分支灰色顯示└ main底部的 trunk 分支每個分支行后面還跟著彩色 PR 編號綠色開放紫色已合并一眼定位要處理的 PR。狀態(tài)圖標(biāo)速查四種圖標(biāo)源碼定義見 cmd/view.go 的branchStatusIndicator圖標(biāo)含義顏色?PR 已合并紫色◎PR 已進(jìn)入合并隊列黃色○PR 處于開放狀態(tài)綠色?分支需要 rebase基分支不是其祖先黃色?圖標(biāo)尤其值得關(guān)注它說明 Stack 歷史不線性了此時運行g(shù)h stack rebase做級聯(lián) rebase 即可恢復(fù)。--json 機器可讀模式把 Stack 狀態(tài)喂給腳本和 AIgh stack view --json--json是自動化場景的瑞士軍刀 。它有兩個關(guān)鍵設(shè)計見 cmd/view.go 中runViewJSON永不彈出交互式提示——Agent 和腳本總能拿到干凈的機器可讀輸出返回類型化退出碼——腳本可以據(jù)此分支處理而不是解析錯誤文案輸出結(jié)構(gòu)固定為三個頂層字段{ trunk: main, currentBranch: feat/02, branches: [ { name: feat/01, head: bbb222, base: aaa111, isCurrent: false, isMerged: true, isQueued: false, needsRebase: false, pr: { number: 42, url: …, state: MERGED } } ] }字段速查表完整字段行為見 cmd/view_test.go 中的斷言字段說明trunkStack 底部的 trunk 分支名currentBranch當(dāng)前所在分支branches[].name/head/base分支名、HEAD 與基分支的 SHAbranches[].isCurrent是否為當(dāng)前分支branches[].isMerged/isQueuedPR 是否已合并 / 已入合并隊列branches[].needsRebase是否需要 rebase已合并分支恒為falsebranches[].pr.stateOPEN/MERGED/QUEUED三選一branches[].pr無 PR 時整個字段省略不會輸出null配合jq這類工具哪些分支需要 rebase、棧頂是哪個分支這類問題都變成一行管道命令的事。退出碼速查腳本怎么判斷結(jié)果gh stack view --json用不同退出碼區(qū)分失敗原因便于自動化決策退出碼含義建議處理0成功正常解析 JSON1一般錯誤記錄日志2不在任何 Stack 中 / 未找到 Stack提示先gh stack init4GitHub API 調(diào)用失敗檢查認(rèn)證或稍后重試6需要消歧當(dāng)前分支屬于多個 Stack先 checkout 一個非 trunk 分支再試 退出碼6是最容易踩的坑當(dāng)你在main上、且倉庫里存在多個共用該 trunk 的 Stack 時就會觸發(fā)。切到任意一個具體分支即可消除歧義。實用搭配建議?日常開發(fā)跑gh stack view看全景跑之前先瞟一眼--short確認(rèn)沒有?AI Agent 集成統(tǒng)一使用--json靠退出碼做分支判斷無需解析彩色文本rebase 后驗證gh stack rebase完成后再--json一次確認(rèn)needsRebase全部歸零命令的更多上下文如sync、rebase如何影響 view 展示的狀態(tài)可在 docs/src/content/docs/reference/cli.md 中查閱??偨Y(jié)gh stack view一個命令、三種形態(tài)覆蓋了 Stack 狀態(tài)查看的全部場景需求用哪個看提交、切分支、瀏覽 PR交互式 TUI終端里快速確認(rèn)狀態(tài)--short 四種狀態(tài)圖標(biāo)腳本 / CI / AI Agent 消費狀態(tài)--json 退出碼掌握它你就隨時知道自己的 Stack 走到了哪一步 ??!久赓M下載鏈接】gh-stackGitHub Stacked PRs項目地址: https://gitcode.com/GitHub_Trending/ghst/gh-stack創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考