如何使用 GitHub CLI(gh):安裝、gh auth login、clone 與終端機建立 Issue/PR
裝好 gh 並完成 auth login 後,在終端機 clone 並建立 Issue 與 Pull Request。
在浏览器里点进 Settings → Developer settings → Personal access tokens,再复制 git clone URL,Issue 和 PR 仍要切回网页填表单。GitHub CLI(gh) 把登入、複製、开 Issue、开 PR 收进終端機;安裝与认证步骤以 cli.github.com 官方文档为准。
搜索 GitHub CLI gh 安裝 gh auth login clone 创建 issue PR 的人,通常要完成:装好 gh、gh auth login 绑定账号、gh repo clone 拉仓库,以及第一次用命令行创建 Issue 和 Pull Request。下文命令可在本机用 gh --help 核对。
gh 适合谁
每天开 Issue/PR 的开发者
在 feature 分支上改完代码,直接在 shell 里 gh pr create,少切浏览器 tab。
维护多个 org 仓库的人
gh repo clone org/repo 用已登入身份拉私有库,不必每次粘贴 PAT。
脚本与 CI 调试
本地先 gh auth status 确认 scope,再跑 release、workflow 或 project 相关子命令(见 gh help)。
安裝 GitHub CLI
- 1
macOS:Homebrew
运行
brew install gh,执行gh --version确认 CLI 在 PATH 中。 - 2
Debian / Ubuntu
按 GitHub 文档添加官方 apt 源后
sudo apt install gh,或使用发行版提供的gh包;装完同样用gh --version验证。 - 3
Windows
可用
winget install GitHub.cli或scoop install gh(包名以各商店当前条目为准)。 - 4
其他 Linux
Fedora:
sudo dnf install gh。Arch:sudo pacman -S github-cli。若无包,可从 GitHub Releases 下载对应架构二进制。
gh auth login:登入 GitHub
- 1
启动交互登入
在終端機运行
gh auth login。选择 GitHub.com(GitHub Enterprise 用户选对应 hostname)。 - 2
选协议与凭据
HTTPS 或 SSH 按团队规范选;HTTPS 常见流程是通过浏览器 OAuth 或粘贴一次性 token(按提示操作,勿把 token 提交到仓库)。
- 3
确认状态
gh auth status应显示已登入账号与 token 权限。若git push仍失败,检查 remote URL 与 SSH key 是否匹配。 - 4
多账号(可选)
工作与个人账号可配合
gh auth switch或文档中的 host 配置;具体 flags 以当前gh auth login -h为准。
gh auth login
gh auth status複製仓库:gh repo clone
在任意目录用 owner/repo 簡寫複製(需对该仓库有读权限):
gh repo clone github/github-cli
cd github-cli
git remote -v等价于在已认证状态下走 GitHub 推荐的 clone 路径;私有库同样适用。若习惯纯 git clone,只要 gh auth 已配置 HTTPS credential helper 或 SSH,也可以继续用 git。
終端機创建 Issue 与 Pull Request
| 命令 | 作用 | 典型场景 |
|---|---|---|
gh issue create | 新建 Issue | 回報 bug、提需求 |
gh issue list | 列出 Issue | 查分配给自己的项 |
gh pr create | 开 Pull Request | 推分支后提审 |
gh pr status | 当前分支 PR 状态 | CI 是否通过 |
gh pr checkout 123 | 检出他人 PR 分支 | 本地 review |
- 1
创建 Issue
在仓库根目录:
gh issue create --title "Fix login timeout" --body "Steps to reproduce…"。不加参数时会打开交互式编辑器(取决于終端機与$EDITOR)。 - 2
提交并推送分支
照常
git checkout -b fix/login、commit、git push -u origin fix/login(或用gh提供的 git 集成,以文档为准)。 - 3
创建 PR
gh pr create --title "Fix login timeout" --body "Closes #42"。首次会提示选 base 分支与是否 draft;也可gh pr create --web在浏览器补全模板。 - 4
查看结果
gh pr view --web打开 PR 页面;gh pr checks看 CI(需仓库启用对应 checks)。
gh调用 GitHub API,不替代 Git 本身:日常仍用git做 commit/merge;gh负责 GitHub 托管侧的对象(Issue、PR、Release 等)。
- gh auth login 后仍 401
- 运行
gh auth refresh或重新 login;检查是否登入错 hostname(Enterprise vs github.com)。 - 没有权限开 PR
- 确认对目标仓库有 write 或 fork 工作流;fork 后默认向 upstream 开 PR 需指定
--repo。 - 与 lazygit / IDE 并存
- 可以:終端機 UI 用 lazygit 做 stage/commit,
gh管 Issue/PR;见本站 lazygit 指南。
和队友对齐 PR 描述或画流程时,可从 wbroom 首页 开浏览器房间,步骤见 建立與加入房間。
還想核對的问题
gh 和 git 是什么关系?
git 是版本控制;gh 是 GitHub 官方 CLI,封装 API 与部分 git 辅助(如 clone 凭据)。两者配合使用。
必须用 gh repo clone 吗?
不必。认证配置好后普通 git clone 即可;gh repo clone 只是簡寫并确保 remote 正确。
能否非交互创建 PR?
可以,用 --title、--body、--base、--head 等 flags;脚本里建议先 gh auth status 再跑,避免 CI 误用个人 token。
如何登出?
gh auth logout 移除本机凭据。共享机器上离开前建议 logout 或删除 ~/.config/gh/ 中对应 host 配置(路径以文档为准)。