常用指令
gh 的形狀都是 gh <對象> <動作>。記住四個對象就夠應付日常:repo、issue、pr、run。
下列指令預設作用在「目前目錄這個 git repo」。若目錄還沒對應遠端,可加 -R OWNER/REPO 指定。
儲存庫 gh repo
gh repo create my-app --public --source=. --remote=origin --push
gh repo clone OWNER/REPO
gh repo view
gh repo view --web
gh repo list
create 可在 GitHub 建新 repo,並把目前資料夾推上去。--web 會開瀏覽器,適合要點 Settings 或看比較複雜的 diff。
Issue gh issue
列表可用 --label bug、--assignee @me 過濾。view 會顯示說明與留言,適合在終端機快速讀完再決定要不要開分支。
Pull Request gh pr
這是 gh 最值得學的一組。
git checkout -b fix-typo
# ... 改檔、commit、push ...
git push -u origin fix-typo
gh pr create --fill
gh pr list
gh pr view
gh pr checkout 18
gh pr diff
gh pr checks
gh pr merge --squash --delete-branch
--fill 會用分支名與 commit 訊息當標題/內文,適合小改動。較大的變更請自己寫 --title 與 --body。
gh pr checkout 18 會把別人的 PR 分支抓到本機,方便本機跑測試再審查。gh pr checks 顯示 Actions 有沒有過,沒過就先別合併。
Actions:gh run 與 gh workflow
run list 看最近幾次執行;run watch 會在終端機等到結束。手動觸發需 workflow 寫了 workflow_dispatch(本站的 CI 就有)。若權限不足,先執行 gh auth refresh -s workflow。
搭配 GitHub Actions 一起看,比較知道這些指令對應網站上的哪一個分頁。
其他常用
gh gist create notes.md
gh release list
gh api repos/:owner/:repo/issues --jq '.[].title'
gh alias set prs 'pr list --author @me'
gh api 可呼叫 REST API,適合官方子指令還沒涵蓋的角落。alias 把常打的一長串收成短指令,設一次即可。
git 與 gh 怎麼分工
改檔、暫存、提交、推分支:用 git。開 Issue、開/審/合併 PR、看 CI:用 gh。兩者都在同一個終端機,不必開兩個視窗。