GitHub CLI(gh)入门指南:5 分钟在终端完成 PR、Issue 与仓库管理
【免费下载链接】cliGitHub’s official command line tool项目地址: https://gitcode.com/GitHub_Trending/cli/cli
GitHub CLI 是 GitHub 官方提供的命令行工具,你可以把它理解成装在终端里的"GitHub 面板":PR、issue、仓库这些原本要在浏览器里点的页面,它全部做成了gh开头的命令。这篇 GitHub CLI 指南会带你完成 GitHub CLI 安装、首次登录,并把 PR 和 issue 的日常操作搬进终端,最后讲清楚它和 hub 的差异以及源码长什么样。
安装 GitHub CLI:四种官方渠道怎么选
先解决"从哪装"。GitHub CLI 覆盖 macOS、Windows、Linux,也支持 GitHub Enterprise Server 2.20+,官方维护的安装渠道有四类:
| 系统 | 推荐方式 | 命令 |
|---|---|---|
| macOS / Linux | Homebrew | brew install gh |
| Debian、Ubuntu | 官方 APT 源 | 见 docs/install_linux.md |
| CentOS、Fedora、RHEL | 官方 RPM 源 | sudo dnf install gh |
| Windows | WinGet | winget install --id GitHub.cli |
Debian、Ubuntu 用户建议添加 GitHub CLI 官方 APT 源,而不是装社区仓库里的旧版包;另外 GitHub Actions 托管 runner 已预装 gh,CI 里直接可用。如果要从源码构建,先装好 Go 1.26+,再克隆仓库执行make install:
git clone https://gitcode.com/GitHub_Trending/cli/cli gh-cli cd gh-cli && make install gh version装完先跑gh version确认,后续升级就是重新执行对应的包管理命令。
五分钟完成 gh 首次登录
装好之后唯一要手动做的事就是认证,全程一条命令、三个选择:
gh auth login流程是:选登录方式(GitHub.com 或 Enterprise Server)→ 选 HTTP/HTTPS 协议 → 在浏览器里授权(或直接把 token 贴进终端)→ 确认默认 scopes(repo、read:org、gist等)→ 选择是否把 token 写入系统钥匙串。登录完成后所有gh命令自动带上你的身份,不用再传 token;多账号场景下也可以用gh auth switch切换当前账号。
gh pr list的输出:绿色编号是 PR 号,右侧是分支名,一眼扫完所有开放 PR
三个核心工作流:看 PR、管 issue、拉代码
登录就绪后,这几条命令能覆盖你日常九成的 GitHub 操作。先看 PR 的整体状态:
gh pr status gh pr create --fill gh issue list --state open第一条列出当前分支关联的 PR、你开的 PR 和等你 review 的 PR;第二条基于当前分支直接创建 PR(--fill会用最近一次 commit 自动生成标题正文,也可以换成--title/--body手动指定);第三条列出开放的 issue。想动手改代码时,gh pr checkout 1448能把 PR 直接拉成本地分支,省掉"复制标题 → 新建分支 → 手动填远程"这几步。
gh pr status分三块展示:当前分支、你创建的 PR、请求你 review 的 PR,是开工前最常用的第一条命令
gh 对比 hub:终端里的 GitHub 工具有两种思路
你如果用过 hub,可能疑惑为什么还要学一个新工具。关键区别在设计上:hub 是 git 的代理,本质是改写了git命令本身;gh 是独立工具,直接调 GitHub API,不依赖你本地怎么配 git。
| 场景 | 浏览器手动操作 | gh 命令 |
|---|---|---|
| 查当前分支的 PR 状态 | 进仓库 → 点 PR 标签 → 找分支,约 6 步 | gh pr status |
| 看某 issue 的详情与评论 | 点进 issue 页滚动查看 | gh issue view 1353 |
| 给 PR 留一条评审意见 | 打开 diff → 写评论 → 提交 | gh pr comment 1448 --body "需要补充测试" |
官方对两者的定位也写得很直白:想要 git 包装器就继续用 hub,想要围绕 GitHub 工作流的独立工具就用 gh。详细解释见 docs/gh-vs-hub.md。
gh issue view展示 issue 的标题、状态、标签、正文和评论数,底部附带网页版链接
让脚本接管 GitHub:--json 与管道输出
脚本化是 gh 容易被低估的能力。除了默认的人类可读表格,所有列表命令都支持--json输出指定字段的 JSON,并且内置--jq直接过滤,省掉单独装 jq 的步骤:
gh issue list --json number,title --jq '.[] | "#\(.number) \(.title)"'输出到管道时 gh 还会自动切换成紧凑模式:
同一命令在管道中自动降级为无颜色紧凑表格,方便被wc、awk等工具消费
深入一层:模块化架构与扩展机制
想读源码的话,项目结构很规矩:每个命令一个独立包,gh issue list的实现就在 pkg/cmd/issue/list/list.go,命令的 help 文本直接写在源码里,发布时自动转成 man 页。整体布局(cmd/入口、pkg/命令、api/客户端、internal/内部工具)在 docs/project-layout.md 里有完整说明。扩展方面,gh 支持安装外部扩展,也提供gh skill install机制把 gh 教给编码代理来驱动,gh at verify则用于校验官方发布包的构建来源。
下一步
- 完整命令手册在 cli.github.com/manual/(仓库内 docs/ 是维护者文档,安装指南见 docs/install_linux.md、docs/install_macos.md、docs/install_windows.md);
- 今天就可以试:登录后跑
gh pr status看看当前仓库,再挑一个开放 issue 执行gh issue view; - 想读源码或构建最新版,克隆 https://gitcode.com/GitHub_Trending/cli/cli 后执行
make install即可。
【免费下载链接】cliGitHub’s official command line tool项目地址: https://gitcode.com/GitHub_Trending/cli/cli
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考