GitHub CLI:告别繁琐的 Git 命令,让开发更高效
本文介绍 GitHub CLI 的安装、配置和日常使用,帮助开发者提升工作流效率。
什么是 GitHub CLI
GitHub CLI(gh)是 GitHub 官方出品的命令行工具,让你无需离开终端就能操作 GitHub,包括创建仓库、管理 issue、提交 PR、查看代码等。
与传统的 git 命令不同,gh 是针对 GitHub 平台本身的高层操作,它简化了很多重复的操作,大幅提升开发效率。
传统方式 vs GitHub CLI
传统方式:
bash
# 创建本地仓库、推送代码
git init
git add .
git commit -m "init"
# 然后要去 GitHub 网页上手动创建远程仓库,复制地址
git remote add origin https://github.com/user/repo.git
git push -u origin main
GitHub CLI 方式:
bash
# 一个命令直接创建远程仓库并推送
gh repo create my-repo --source=. --remote=origin --push
差别就是:用 gh 减少网页操作,所有事都在命令行搞定。
安装
macOS(推荐 Homebrew)
bash
brew install gh
验证安装:
bash
gh --version
# 输出:gh version 2.x.x
Linux
bash
# Ubuntu / Debian
sudo apt-get install gh
# Fedora / RHEL
sudo dnf install gh
# Arch Linux
sudo pacman -S github-cli
Windows
bash
choco install gh
# 或者
scoop install gh
登录与认证
安装完需要登录 GitHub 账户,gh 会用 OAuth 认证,完全不需要输入密码。
bash
gh auth login
按提示选择:
? Where do you use GitHub?
> GitHub.com
? What is your preferred protocol for Git operations?
> HTTPS
? Authenticate Git with your GitHub credentials?
> Yes
? How would you like to authenticate GitHub CLI?
> Login with a web browser
最后一步会弹出浏览器,自动打开 GitHub 授权页面,点确认即可。登录成功后,后续所有 gh 命令都会自动用你的身份。
验证登录成功:
bash
gh auth status
# 输出你的用户名和权限信息
日常使用场景
1. 创建新仓库
方式 A:直接创建远程仓库
bash
gh repo create customer-service-agent \
--description "基于 LangChain 的智能客服系统" \
--private \
--source=. \
--remote=origin \
--push
一个命令搞定:创建仓库、关联本地代码、推送到远程。
方式 B:只创建空仓库(不推送代码)
bash
gh repo create my-repo --private
2. 查看仓库信息
bash
# 查看当前仓库详情
gh repo view
# 查看某个仓库
gh repo view owner/repo-name
# 查看仓库的 README
gh repo view owner/repo-name --web # 在浏览器打开
3. 管理 Issue
bash
# 列出所有 open 的 issue
gh issue list
# 查看某个 issue 的详情
gh issue view 1
# 创建新 issue
gh issue create --title "修复登录 bug" --body "用户反馈..."
# 关闭 issue
gh issue close 1
# 添加标签
gh issue edit 1 --add-label "bug,urgent"
4. 提交和管理 PR
bash
# 当前分支创建 PR(会自动打开编辑器让你写 PR 描述)
gh pr create --title "新增数据库建表功能"
# 列出所有 PR
gh pr list
# 查看 PR 详情
gh pr view 5
# 在本地检出某个 PR 的代码
gh pr checkout 5
# 合并 PR
gh pr merge 5
# 关闭 PR
gh pr close 5
5. 代码审查
bash
# 查看 PR 的改动
gh pr diff 5
# 添加评论
gh pr comment 5 --body "LGTM(looks good to me)"
# 请求审查
gh pr review 5 --request-review @username
6. 查看工作流 / Actions 状态
bash
# 列出所有 workflow runs
gh run list
# 查看某个 run 的详情
gh run view 12345
# 查看日志
gh run view 12345 --log
7. 克隆仓库
bash
# 速度比 git clone 快,因为会自动用 SSH 或 HTTPS(取决于你的认证方式)
gh repo clone owner/repo-name
# 克隆到指定目录
gh repo clone owner/repo-name ~/my-projects/repo-name
进阶用法
1. 批量操作 Issue
bash
# 给所有 open 的 issue 加上 "help wanted" 标签
gh issue list --state open --json number -q '.[].number' | \
xargs -I {} gh issue edit {} --add-label "help wanted"
2. 生成发布说明
bash
# 从最近的 tag 生成 changelog
gh release create v1.0.0 --generate-notes
3. 快速打开仓库网页
bash
# 在浏览器打开当前仓库
gh repo view --web
# 打开 issue
gh issue view 1 --web
# 打开 PR
gh pr view 5 --web
4. 自定义别名(缩短命令)
bash
# 为常用命令创建别名
gh alias set prl 'pr list --state open'
gh alias set iss 'issue list --state open'
# 之后直接用缩写
gh prl # 等同于 gh pr list --state open
常见问题
Q:GitHub CLI 和 Git 的区别是什么?
A:git 是版本控制工具,管理代码的版本历史。gh 是 GitHub 平台工具,管理仓库、issue、PR 等平台功能。两者互补,不冲突。
Q:gh 能替代 git 吗?
A:不能。git 是必需的,gh 是增强。你还是要用 git add/commit/push,gh 只是让平台操作更快。
Q:安全吗?密码会泄露吗?
A:完全安全。gh 用 OAuth 认证,密码永远不会输入到命令行,认证信息存在系统密钥链里(macOS 是 Keychain)。
Q:能在脚本里用 gh 吗?
A:可以。gh 支持 --json 输出,方便在 CI/CD 里集成:
bash
# 输出 JSON 格式
gh pr list --json number,title,author
# 解析 JSON
gh issue list --json number,title -q '.[].number'
工作流建议
日常开发流程
bash
# 1. 创建新分支
git checkout -b feature/add-login
# 2. 修改代码
# ... 写代码 ...
# 3. 提交
git add .
git commit -m "feat: 添加登录功能"
git push origin feature/add-login
# 4. 创建 PR(无需复制链接,自动关联)
gh pr create --title "feat: 添加登录功能" --body "实现用户登录界面"
# 5. 等待审查、合并
gh pr view # 查看 PR 状态
CI 失败处理
bash
# 查看最新 run 的日志
gh run view --log -n 1
# 重新运行 workflow
gh run rerun 12345
总结
GitHub CLI 的核心价值在于:
- 减少网页操作 --- 留在终端,提升效率
- 简化命令 --- 一个命令完成复杂操作
- 自动化友好 --- JSON 输出方便脚本集成
- 安全认证 --- OAuth 认证,不涉及密码
如果你每天都在 GitHub 上工作,gh 值得花半小时学习,长期回报很大。
参考资源
- 官方文档:cli.github.com
- 快速参考:
gh help - 命令详解:
gh <command> --help
下次开发时,试试用 gh 代替浏览器操作吧!