GitHub CLI 详解:把 GitHub 装进终端
日常开发里最割裂的体验莫过于:写代码、提交、切分支都在终端里行云流水,一到"建 PR、看 CI、评论 issue"就得切回浏览器点网页。GitHub CLI(命令名 gh)就是为消灭这种割裂而生——GitHub 官方出品的命令行工具,免费开源,把 pull request、issue、release、CI 检查这些平台能力全部搬进终端,甚至内置了 Copilot 终端代理。本文从安装、核心命令、脚本化到与 git 的关系,完整拆解。
1、gh 是什么:git 之上的 GitHub 层
先分清两个工具:git 管的是本地版本控制——提交、分支、合并;gh 管的是 GitHub 平台特性——PR、issue、release、checks。它不是 git 的替代品,而是架在 git 之上的平台层,让平台操作发生在"你已经在用 git 和代码的地方"。
基本面:
- GitHub 官方出品,免费且开源(当前版本 v2.98.0)
- 除 GitHub.com 外,同样支持 GitHub Enterprise Server
- 可直接脚本化调用 GitHub API,支持自定义命令别名
- 终端里即可查看仓库 README, gh copilot 还能启动终端 AI 代理
2、安装:全平台覆盖
各平台都有原生包管理器入口,Windows 用 winget 一条命令最省事。
// Windows:winget(推荐)或下载 MSI 安装包
winget install --id GitHub.cli
// 也支持 choco / scoop 安装
// macOS
brew install gh
// Linux(Debian / Ubuntu 用 apt,Fedora 用 dnf,openSUSE 用 zypper)
sudo apt install gh安装要点:
1. Windows 装完重开终端,让 PATH 生效
2. 用 gh --version 验证安装成功
3. 任一平台也可直接下载 deb / rpm / tar.gz 二进制(当前 v2.98.0)
4. 首次使用先 gh auth login 完成 GitHub 账号认证
3、认证与第一个命令
gh 的所有平台操作都建立在认证之上,登录一次全程免密。
// 登录 GitHub(浏览器授权或粘贴 token,按提示选择即可)
gh auth login
// 验证当前登录状态
gh auth status入门要点:
1. gh auth login 会引导选择协议(https / ssh)与认证方式,一路默认即可
2. 认证后 gh 会把 git 的拉推也一并配好 credential 助手
3. 企业版用户登录时选 GitHub Enterprise Server 并填入实例地址
4. gh extension 系列命令还能安装社区扩展,能力可持续叠加
4、Pull Request:核心场景
PR 是 gh 最常用的场景,从创建到检查一条龙都在终端完成。
// 从当前分支创建 PR(自动填标题与正文)
gh pr create
// 查看 PR 状态:当前分支、我创建的、待我评审的
gh pr status
// 把别人的 PR 检出到本地调试
gh pr checkout 12
// 查看 CI / checks 结果
gh pr checksPR 要点:
1. gh pr create 默认推送当前分支并打开创建流程,--fill 可自动填模板
2. gh pr checkout 12 免去手动 fetch + 切分支两步
3. gh pr checks 直接看 CI 红绿,配合 --watch 可盯到跑完
4. 评审与合并对应 gh pr review / gh pr merge,全程不碰浏览器
5、Issue、Release 与仓库
平台日常的另外几块:issue 管理、发版、仓库信息,同样一行搞定。
// 列出并过滤 issue
gh issue list
gh issue list --label="bugs"
// 查看仓库 README
gh repo view
// 发布 release
gh release create 1.0能力速览:
- gh issue:创建、评论、关闭、按标签与指派人过滤
- gh release:创建发布、上传附件产物、下载资源
- gh repo:view 看 README、clone 克隆、fork 转存
- gh run / gh workflow:查看与重跑 GitHub Actions 工作流
- gh gist:终端里直接创建与管理代码片段
6、别名与脚本化:把重复操作固化
长命令可封成别名,gh api 更让任意 GitHub API 变成可脚本化的一行命令。
// 自定义别名:以后 gh bugs 就等于按 bugs 标签列 issue
gh alias set bugs 'issue list --label="bugs"'
// 直接调用 GitHub API(返回 JSON)
gh api repos/cli/cli/releases/latest
// 终端 AI 代理:自然语言问命令怎么写
gh copilot脚本化要点:
1. 常用过滤条件封成 alias,减少重复输入
2. gh api 打通全部 REST API,配合 jq 可做自动化报表
3. CI 脚本里用 gh release create 自动发版、gh pr comment 自动回评
4. gh copilot 适合记不住参数时现查现用
7、使用建议与注意事项
使用建议:
- 与 git 分工理解:git 管本地版本,gh 管平台协作,组合使用
- 高频操作先建别名,如按团队常用标签过滤 issue
- CI 里用 gh 自动化发版、评论、汇总检查结果
- 装上 gh copilot 扩展,命令语法随用随问
注意事项:
- gh 不是 git:本地提交、分支、合并仍用 git 完成
- 企业版功能需确认 GHES 版本支持度,登录时选对实例
- gh api 高频调用注意接口速率限制,脚本里做好退避
- token 权限按最小化原则授予,避免脚本泄漏面扩大
8、总结
GitHub CLI 是官方出品的终端工具(免费开源,当前 v2.98.0),架在 git 之上把 PR、issue、release、checks、Actions、gist 等 GitHub 平台能力全部命令化:gh pr create / status / checkout / checks 覆盖 PR 全流程,gh issue、gh release、gh repo 管理日常事务,gh api 与别名机制支撑脚本化自动化,gh copilot 提供终端 AI 代理,同时支持 GitHub.com 与企业版。
落地建议:Windows 用 winget install --id GitHub.cli、macOS 用 brew install gh 装好后,先 gh auth login 认证,再把 PR 流程(create / status / checks / merge)搬进终端跑一周,习惯即成;高频操作封别名、CI 脚本接 gh api 与 release 自动化。对于重度 GitHub 用户,gh 是把"浏览器来回切换"从工作流里删掉的必要工具。


