很多人把 GitHub 当成“打开网页才能用”的平台:提 PR、看评论、做 Review、切换账号,都要在浏览器里点来点去。其实 GitHub 官方提供了命令行工具 GitHub CLI(简称 gh),把这些动作变成可复制、可搜索、可脚本化的命令,尤其适合频繁协作或跨端办公的场景。
官方文档:https://docs.github.com/en/github-cli
macOS(Homebrew):
brew install gh
Windows(winget):
winget install --id GitHub.cli
安装完成后先确认版本:
gh --version
第一次使用建议走浏览器授权(安全、直观):
gh auth login
常见选择建议:GitHub.com(而不是 Enterprise)→ HTTPS → 选择浏览器登录。完成后,你可以查看当前登录状态:
gh auth status
如果你需要在“工作账号 / 个人账号”之间切换,建议给不同账号分别登录,然后用以下命令管理:
gh auth logout
gh auth login
也可以在不同终端配置不同的环境变量或配置目录(更适合重度用户),但对大多数人来说,手动切换已足够稳定。
1)克隆仓库(自动处理 SSH/HTTPS 细节):
gh repo clone OWNER/REPO
2)查看当前仓库的 PR 列表(按状态筛选):
gh pr list
gh pr list --state open
3)从当前分支创建 PR(交互式填写标题/描述):
gh pr create
4)快速打开 PR 网页(需要网页对比时很省事):
gh pr view --web
5)查看 PR 详情(包含 CI 状态、review 等信息):
gh pr view
当你需要认真 Review 一个 PR,推荐这样做:
1)直接把某个 PR 拉到本地分支(不必手动加 remote):
gh pr checkout 123
2)看变更(打开网页或用本地 diff 工具):
gh pr view 123 --web
3)提交 Review(Approve / Request changes / Comment):
gh pr review 123 --approve
gh pr review 123 --request-changes -b "建议:这里最好补充边界条件处理,并加上对应测试。"
gh pr review 123 --comment -b "这个命名我有点看不懂,能否更贴近业务含义?"
你会发现:Review 其实就是几个标准动作的组合。命令行把流程固定下来后,既快也不容易漏步骤。
1)从 Issue 列表快速定位任务:
gh issue list
2)把常用输出转成 JSON,配合 jq/脚本做自动化(只做信息查询,不做任何敏感操作):
gh pr list --json number, ,author,createdAt
3)当你在多个仓库之间切换时,先确认当前远程指向,避免在错误仓库里发 PR:
git remote -v
1)提示没有权限或看不到私有仓库:通常是授权范围不足或登录到错误账号。先看:
gh auth status
2)公司使用 GitHub Enterprise:登录时要选择企业域名,并确保网络环境可访问。
3)团队需要统一规范:可以把常用命令整理成团队 wiki/README,让新人直接复制粘贴上手。
gh 的价值不在于“替代网页”,而在于把协作动作变成可重复的流程:创建 PR、拉取 PR、Review、切换账号、查 Issue……这些都是每天要做的事。把它们移到命令行,你会明显感觉到上下文切换更少、节奏更顺。