Github CLI

GitHub CLI 的快速参考,这是一个开源命令行工具,可在终端上启用 GitHub 功能。

入门

安装

Windows

工具安装升级
WinGetwinget install --id Github.cliwinget upgrade --id GitHub.cli
Scoopscoop install ghscoop update gh
Chocochoco install ghchoco upgrade gh

Mac OS

工具安装升级
Brewbrew install ghbrew upgrade gh
MacPortssudo port install ghsudo port selfupdate && sudo port upgrade gh

Linux

请参见 安装说明 以获取其他 Linux 发行版的信息。安装脚本:

type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y)
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y

基本用法

帮助和文档

显示命令选项:

命令描述
gh help [command]帮助提供应用程序中任何命令的帮助。只需键入 gh help [命令路径] 以获取完整详细信息。

认证

命令描述
gh auth login默认通过基于网页的浏览器进行身份验证
gh auth logout移除主机的身份验证配置
gh auth refresh扩展或修复存储凭据的权限范围
gh auth setup-git配置 Git 使用 GitHub CLI 作为凭据助手
gh auth status验证并显示有关您身份验证状态的信息
gh auth token打印 gh 配置使用的身份验证令牌

使用 GitHub 令牌:

$ gh auth --with-token < token.txt

仓库管理

常规

命令描述
gh repo create创建一个新的 GitHub 仓库
gh repo list [target]列出某个用户或组织拥有的仓库

目标

命令描述
gh repo archive [repo]存档一个 GitHub 仓库
gh repo clone [dir]在本地克隆一个 GitHub 仓库
gh repo delete [repo]删除一个 GitHub 仓库
gh repo deploy-key管理仓库中的部署密钥
gh repo edit [repo]编辑仓库设置
gh repo fork [repo]创建一个仓库的分叉
gh repo rename [name]重命名一个 GitHub 仓库
gh repo set-default [repo]设置默认的远程仓库
gh repo sync [dest-repo]从源仓库同步到目标仓库
gh repo view [repo]显示一个 GitHub 仓库的描述和 README

问题

搜索问题

命令描述
gh search issues [query]在 GitHub 上搜索问题

示例

搜索匹配关键词 "readme" 和 "typo" 的问题

$ gh search issues readme typo

搜索匹配短语 "broken feature" 的问题

$ gh search issues "broken feature"

搜索 cli 组织中的问题和拉取请求

$ gh search issues --include-prs --owner=cli

搜索分配给自己的开放问题

$ gh search issues --assignee=@me --state=open

搜索评论数超过 100 的问题

$ gh search issues --comments=">100"

搜索没有标签 "bug" 的问题

$ gh search issues -- -label:bug

拉取请求

拉取请求操作

命令描述
gh pr create在 GitHub 上创建拉取请求
gh pr list列出 GitHub 仓库中的拉取请求
gh pr status显示相关拉取请求的状态

示例

$ gh pr status

示例输出:

Current branch
  #12 Remove the test feature [user:patch-2]
   - All checks failing - Review required

Created by you
  You have no open pull requests

Requesting a code review from you
  #13 Fix tests [branch]
  - 3/4 checks failing - Review required
  #15 New feature [branch]
   - Checks passing - Approved

GitHub Actions

常规操作

命令描述
gh workflow disable禁用工作流,防止其运行或在列出工作流时显示
gh workflow enable启用工作流,允许其运行并在列出工作流时显示
gh workflow list列出工作流文件,默认隐藏禁用的工作流
gh workflow run为给定的工作流创建一个 workflow_dispatch 事件
gh workflow view查看工作流的摘要

运行操作

命令描述
gh run cancel取消一个工作流运行
gh run delete删除一个工作流运行
gh run download下载由 GitHub Actions 工作流运行生成的工件
gh run list列出最近的工作流运行
gh run rerun重新运行整个运行、仅失败的作业或运行中的特定作业
gh run view查看工作流运行的摘要
gh run watch观看一个运行直到其完成,显示其进度

别名

常规别名设置

命令描述
gh alias delete删除设置的别名
gh alias import从 YAML 文件的内容中导入别名
gh alias list打印出所有已配置的别名
gh alias set定义一个单词,当调用时会展开为完整的 gh 命令

发布

常规操作

命令描述
gh release create为一个仓库创建新的 GitHub 发布
gh release list列出一个仓库中的发布

目标命令

命令描述
gh release delete删除一个发布
gh release delete-asset从一个发布中删除一个资产
gh release download从 GitHub 发布中下载资产
gh release edit编辑一个发布
gh release upload上传资产文件到一个 GitHub 发布
gh release view查看有关一个 GitHub 发布的信息

配置

目标设置

命令描述
gh config clear-cache清除 CLI 缓存
gh config get打印给定配置键的值
gh config list打印配置键及其值的列表
gh config set用给定键的值更新配置