终端开 PR / review / merge:gh CLI 让我每天少切 20 次浏览器

起因

写完代码 → 推分支 → 打开浏览器 → 找到仓库 → 点 "Compare & pull request" →
填标题描述 → 加 reviewer → 等审 → 收通知 → 看评论 → 回评论 → 改代码 →
重复。一天来回浏览器和编辑器几十次,每次都打断 flow。

gh 是 GitHub 官方 CLI,把 PR 的整个生命周期搬到终端。

解决方案

装 + 登录

# macOS / Linux
brew install gh
# 或 Debian/Ubuntu
sudo apt install gh

gh auth login
# 选 GitHub.com → HTTPS → 浏览器登录

开 PR

# 推完分支后一行开 PR
gh pr create --base main --title "feat: add OAuth" \
  --body "Closes #42. ...

  ## Test plan
  - [ ] manual login
  - [ ] CI green"

# 或者完全交互式
gh pr create
# 自动用最近的 commit 信息预填

更便利的:

# 创建 + 自动指 reviewer + draft
gh pr create --draft --reviewer alice,bob,@org/backend

看 / review / 合

# 看本仓库所有 open PR
gh pr list
gh pr list --author @me
gh pr list --label bug

# 看某 PR 详情
gh pr view 123
gh pr view 123 --web   # 还是想浏览器看

# 看 diff
gh pr diff 123
gh pr diff 123 --color always | less -R

# checkout 这个 PR 到本地
gh pr checkout 123

# Review
gh pr review 123 --approve --body "LGTM"
gh pr review 123 --comment --body "some notes"
gh pr review 123 --request-changes --body "..."

# 看 CI 状态
gh pr checks 123

# 合并(squash + 删分支)
gh pr merge 123 --squash --delete-branch

# admin override (绕过 required reviews,谨慎)
gh pr merge 123 --admin --squash

看自己/团队的 PR backlog

写个 alias:

alias my-prs='gh pr list --author @me --state all --limit 20'
alias to-review='gh pr list --search "review-requested:@me"'
alias team-prs='gh pr list --search "org:my-org is:open"'

to-review 是我每天上班第一件事 —— 一行看到所有等我 review 的 PR。

issue 也一并管

gh issue list --assignee @me
gh issue create --title "..." --body "..." --label bug --assignee @me
gh issue close 42 --comment "fixed in PR #43"

CI / workflow

# 看 actions run
gh run list --workflow=test.yml
gh run view 8123456789
gh run watch                # 等当前分支最新 run 跑完,CI 通过通知

# 触发手动 workflow
gh workflow run deploy.yml -f environment=prod

gh run watch 是 release 时神器:push 后跑一行,CI 跑完自动桌面通知,
不必去浏览器盯。

自动复制 PR 链接

gh pr view 123 --json url --jq .url | pbcopy     # macOS
gh pr view 123 --json url --jq .url | xclip      # Linux

写到团队 Slack 时一秒粘上 URL。

gh extensions

gh extension install dlvhdr/gh-dash       # TUI 仪表盘
gh extension install vilmibm/gh-screensaver  # ASCII 烟花(彩蛋)
gh extension install yusukebe/gh-markdown-preview

gh dash 是装了之后再也戒不掉的 TUI:一屏看自己的 PR / 待 review /
最近 issue,j/k 浏览,o 在浏览器打开。

效果

  • 开 PR 平均 < 30 秒(之前要 2-3 分钟)
  • review 流程不切上下文:gh pr diff 123 + gh pr review --approve
  • CI 状态 gh pr checks 比刷网页快
  • 每天浏览器切换次数下降 70%+

踩过的坑

  1. token 权限不够gh auth status 看 scope。如果要管 GitHub
    Actions / Pages 等需要额外 scope,gh auth refresh -s admin:org
    补权限。

  2. 多账号:个人 + 公司 GitHub 都用 gh,gh auth switch 切。
    --user flag 也能临时指定。

  3. company GitHub Enterprisegh auth login --hostname github.company.com
    单独登录;命令默认走该 host。

  4. gh pr create 不显示 default branch:仓库设置 default branch 没
    配,gh 默认拿你 push 的 branch。先 gh repo edit --default-branch main

  5. gh pr checkout 不能 fetch 别的 fork 的 PR 时:在公开 fork 的 PR 上
    有时 git 配置不对。手动 git fetch upstream pull/123/head:pr-123 然后
    git checkout pr-123

精确评价 共 0 人评价
可复现性
可复现 · 0 不可复现 · 0
文风
文风流畅 · 0 文风晦涩 · 0
立场
支持 · 0 反对 · 0

登录后即可对本帖作出评价。

评论区 0 条 · 所有人可在此交流

登录后参与评论。

还没有评论,来说两句。