<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gh on Zata-砸它</title><link>https://www.zata.cc/tags/gh/</link><description>Recent content in Gh on Zata-砸它</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>Example Person</copyright><lastBuildDate>Sun, 12 Apr 2026 22:29:02 +0800</lastBuildDate><atom:link href="https://www.zata.cc/tags/gh/index.xml" rel="self" type="application/rss+xml"/><item><title>gh使用教程</title><link>https://www.zata.cc/p/gh%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/</link><pubDate>Sun, 12 Apr 2026 21:50:00 +0800</pubDate><guid>https://www.zata.cc/p/gh%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/</guid><description>&lt;h2 id="1-常用命令速查">1. 常用命令速查
&lt;/h2>&lt;p>&lt;strong>case&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 创建私有仓库并推送本地代码&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh repo create my-project --private --source&lt;span class="o">=&lt;/span>. --push
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 查看帮助与版本&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh --version
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh &lt;span class="nb">help&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh &amp;lt;command&amp;gt; --help
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 登录与认证&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh auth login
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh auth status
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh auth &lt;span class="nb">logout&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 仓库&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh repo clone owner/repo
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh repo create
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh repo view --web
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh repo fork
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh repo sync
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Pull Request&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr create --fill
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr view
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr checkout &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr diff
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr review --approve
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr merge
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Issue&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue create
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue view &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue comment &lt;span class="m">123&lt;/span> --body &lt;span class="s2">&amp;#34;补充说明&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue close &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># GitHub Actions&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh workflow list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh run list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh run view &amp;lt;run-id&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh run watch
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh run download &amp;lt;run-id&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Release&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh release create v1.0.0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh release list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh release view v1.0.0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh release upload v1.0.0 dist/app.tar.gz
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 浏览器与搜索&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh browse
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh browse &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh search prs --author @me
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh search issues --owner your-org
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># API 与脚本&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh api user
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh api repos/OWNER/REPO/pulls
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr list --json number,title,url
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 配置与效率&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh &lt;span class="nb">alias&lt;/span> &lt;span class="nb">set&lt;/span> pv &lt;span class="s2">&amp;#34;pr view&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh config &lt;span class="nb">set&lt;/span> editor vim
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh extension search
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh extension install owner/gh-extension-name
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="2-gh-是什么">2. &lt;code>gh&lt;/code> 是什么
&lt;/h2>&lt;p>&lt;code>gh&lt;/code> 是 GitHub 官方命令行工具，核心价值不是替代 &lt;code>git&lt;/code>，而是把原本要在 GitHub 网页上完成的事情搬到终端里。&lt;/p>
&lt;p>适合用 &lt;code>git&lt;/code> 做的事情：&lt;/p>
&lt;ul>
&lt;li>本地提交、分支切换、变基、合并、查看工作区变更&lt;/li>
&lt;li>与任意 Git 远程交互，而不局限于 GitHub&lt;/li>
&lt;/ul>
&lt;p>适合用 &lt;code>gh&lt;/code> 做的事情：&lt;/p>
&lt;ul>
&lt;li>登录 GitHub 账号&lt;/li>
&lt;li>创建和管理 Pull Request、Issue、Release&lt;/li>
&lt;li>查看和触发 GitHub Actions&lt;/li>
&lt;li>直接调用 GitHub API&lt;/li>
&lt;li>安装 GitHub CLI 扩展&lt;/li>
&lt;/ul>
&lt;p>最实用的理解方式是：&lt;code>git&lt;/code> 管仓库历史，&lt;code>gh&lt;/code> 管 GitHub 平台能力。&lt;/p>
&lt;h2 id="3-安装与初始化">3. 安装与初始化
&lt;/h2>&lt;h3 id="安装">安装
&lt;/h3>&lt;p>常见安装方式如下：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># macOS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew install gh
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Windows&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">winget install --id GitHub.cli
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ubuntu / Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">type&lt;/span> -p curl &amp;gt;/dev/null &lt;span class="o">||&lt;/span> sudo apt install curl -y
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg &lt;span class="p">|&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> sudo dd &lt;span class="nv">of&lt;/span>&lt;span class="o">=&lt;/span>/usr/share/keyrings/githubcli-archive-keyring.gpg
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;deb [arch=&lt;/span>&lt;span class="k">$(&lt;/span>dpkg --print-architecture&lt;span class="k">)&lt;/span>&lt;span class="s2"> signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> sudo tee /etc/apt/sources.list.d/github-cli.list &amp;gt; /dev/null
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt update
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt install gh -y
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>安装后先确认版本：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh --version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="登录">登录
&lt;/h3>&lt;p>最常用的是交互式登录：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh auth login
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>执行后通常会依次选择：&lt;/p>
&lt;ul>
&lt;li>登录 &lt;code>GitHub.com&lt;/code> 还是企业版 GitHub&lt;/li>
&lt;li>使用 &lt;code>HTTPS&lt;/code> 还是 &lt;code>SSH&lt;/code>&lt;/li>
&lt;li>通过浏览器登录还是输入令牌&lt;/li>
&lt;/ul>
&lt;p>登录完成后可以检查状态：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh auth status
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>如果你已经有环境变量令牌，也可以让 &lt;code>gh&lt;/code> 直接使用：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">export&lt;/span> &lt;span class="nv">GITHUB_TOKEN&lt;/span>&lt;span class="o">=&lt;/span>your_token
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh auth status
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>说明：&lt;/p>
&lt;ul>
&lt;li>日常个人开发，交互式 &lt;code>gh auth login&lt;/code> 最省事&lt;/li>
&lt;li>在 CI、脚本、自动化环境里，更常见的是 &lt;code>GITHUB_TOKEN&lt;/code>&lt;/li>
&lt;li>如果你使用 GitHub Enterprise，可以用 &lt;code>gh auth login --hostname &amp;lt;hostname&amp;gt;&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="4-仓库操作">4. 仓库操作
&lt;/h2>&lt;h3 id="克隆仓库">克隆仓库
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh repo clone owner/repo
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>它本质上还是帮你完成 GitHub 仓库级别的克隆，但写法更统一，也方便后续继续使用 &lt;code>gh&lt;/code>。&lt;/p>
&lt;h3 id="创建仓库">创建仓库
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh repo create
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>这个命令会进入交互流程，通常会问你：&lt;/p>
&lt;ul>
&lt;li>仓库名称&lt;/li>
&lt;li>是否公开&lt;/li>
&lt;li>是否添加 README&lt;/li>
&lt;li>是否推送当前目录&lt;/li>
&lt;/ul>
&lt;p>如果你想快速把当前项目推到 GitHub，经常很好用。&lt;/p>
&lt;h3 id="查看仓库信息">查看仓库信息
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh repo view
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh repo view --web
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh repo view owner/repo
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>常见用途：&lt;/p>
&lt;ul>
&lt;li>在终端查看仓库概要&lt;/li>
&lt;li>直接在浏览器打开仓库页面&lt;/li>
&lt;li>脱离当前目录查看别的仓库&lt;/li>
&lt;/ul>
&lt;h3 id="fork-与同步">Fork 与同步
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh repo fork
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh repo sync
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>典型场景：&lt;/p>
&lt;ol>
&lt;li>&lt;code>fork&lt;/code> 别人的仓库到自己账号下&lt;/li>
&lt;li>在自己的 fork 上开发&lt;/li>
&lt;li>上游仓库更新后，用 &lt;code>gh repo sync&lt;/code> 同步&lt;/li>
&lt;/ol>
&lt;p>如果你平时经常参与开源项目，这两个命令非常顺手。&lt;/p>
&lt;h2 id="5-pull-request-工作流">5. Pull Request 工作流
&lt;/h2>&lt;p>&lt;code>gh&lt;/code> 最有价值的部分之一，就是把 PR 的完整链路搬到命令行里。&lt;/p>
&lt;h3 id="创建-pr">创建 PR
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh pr create
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr create --fill
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>--fill&lt;/code> 会自动用当前分支的提交信息帮你生成标题和描述，适合已经写好了比较规范 commit message 的情况。&lt;/p>
&lt;p>常见流程：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git checkout -b feature/login
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git add .
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git commit -m &lt;span class="s2">&amp;#34;feat: add login page&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git push -u origin feature/login
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr create --fill
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="查看-pr">查看 PR
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh pr list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr view
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr view &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr view --web
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>适合查看：&lt;/p>
&lt;ul>
&lt;li>当前仓库有哪些 PR&lt;/li>
&lt;li>某个 PR 的详情&lt;/li>
&lt;li>直接跳转浏览器继续看评论和检查项&lt;/li>
&lt;/ul>
&lt;h3 id="切换到某个-pr">切换到某个 PR
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh pr checkout &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>这个命令很适合代码评审场景。你不用先找分支名，直接通过 PR 编号就能把代码拉到本地。&lt;/p>
&lt;h3 id="查看差异检查评审合并">查看差异、检查、评审、合并
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh pr diff &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr checks &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr review &lt;span class="m">123&lt;/span> --approve
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr review &lt;span class="m">123&lt;/span> --comment -b &lt;span class="s2">&amp;#34;建议补一个测试&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pr merge &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>这一组命令基本覆盖了 PR 审查最常见的动作：&lt;/p>
&lt;ul>
&lt;li>看 diff&lt;/li>
&lt;li>看 CI 是否通过&lt;/li>
&lt;li>approve / comment / request changes&lt;/li>
&lt;li>合并 PR&lt;/li>
&lt;/ul>
&lt;p>如果团队流程比较规范，&lt;code>gh&lt;/code> 能明显减少频繁切浏览器的次数。&lt;/p>
&lt;h2 id="6-issue-管理">6. Issue 管理
&lt;/h2>&lt;h3 id="创建与查看">创建与查看
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh issue create
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue view &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue view &lt;span class="m">123&lt;/span> --web
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>适合用来做：&lt;/p>
&lt;ul>
&lt;li>快速提 bug&lt;/li>
&lt;li>记录待办事项&lt;/li>
&lt;li>查看当前仓库未关闭的问题&lt;/li>
&lt;/ul>
&lt;h3 id="评论编辑关闭">评论、编辑、关闭
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh issue comment &lt;span class="m">123&lt;/span> --body &lt;span class="s2">&amp;#34;我来处理这个问题&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue edit &lt;span class="m">123&lt;/span> --add-label bug
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue close &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue reopen &lt;span class="m">123&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>如果你把 GitHub Issues 当轻量项目管理工具，这一组命令会非常高频。&lt;/p>
&lt;h2 id="7-github-actions-与-cicd">7. GitHub Actions 与 CI/CD
&lt;/h2>&lt;p>&lt;code>gh&lt;/code> 对 Actions 的支持很实用，尤其适合你在终端里排查 CI。&lt;/p>
&lt;h3 id="查看工作流和运行记录">查看工作流和运行记录
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh workflow list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh run list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh run view &amp;lt;run-id&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="观察运行状态">观察运行状态
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh run watch
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>这个命令适合在你刚 push 代码后盯 CI 结果，不用一直刷新网页。&lt;/p>
&lt;h3 id="下载产物与重新运行">下载产物与重新运行
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh run download &amp;lt;run-id&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh run rerun &amp;lt;run-id&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>常见场景：&lt;/p>
&lt;ul>
&lt;li>下载构建产物&lt;/li>
&lt;li>CI 因偶发网络问题失败时重跑&lt;/li>
&lt;li>快速定位是哪一步报错&lt;/li>
&lt;/ul>
&lt;h2 id="8-release-管理">8. Release 管理
&lt;/h2>&lt;p>如果你的项目通过 GitHub Release 发版本，&lt;code>gh&lt;/code> 可以把整个流程命令化。&lt;/p>
&lt;h3 id="创建与查看-release">创建与查看 Release
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh release create v1.0.0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh release list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh release view v1.0.0
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="上传构建产物">上传构建产物
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh release upload v1.0.0 dist/app.tar.gz
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>这在发布二进制、压缩包、安装包时很方便，尤其适合配合脚本或 CI 自动化。&lt;/p>
&lt;h2 id="9-gh-api把-github-api-直接带进终端">9. &lt;code>gh api&lt;/code>：把 GitHub API 直接带进终端
&lt;/h2>&lt;p>很多人低估了 &lt;code>gh api&lt;/code>，但它其实是 &lt;code>gh&lt;/code> 最强的能力之一。&lt;/p>
&lt;h3 id="基本调用">基本调用
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh api user
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh api repos/OWNER/REPO
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh api repos/OWNER/REPO/issues
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>如果某个能力暂时没有现成的 &lt;code>gh &amp;lt;group&amp;gt; &amp;lt;subcommand&amp;gt;&lt;/code>，往往可以直接退回到 &lt;code>gh api&lt;/code>。&lt;/p>
&lt;h3 id="搭配-json-输出">搭配 JSON 输出
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh pr list --json number,title,url
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh issue list --json number,title,labels
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh workflow list --json id,name,path,state
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>这类写法很适合：&lt;/p>
&lt;ul>
&lt;li>给 shell 脚本喂数据&lt;/li>
&lt;li>做自动化统计&lt;/li>
&lt;li>和 &lt;code>jq&lt;/code> 配合筛选字段&lt;/li>
&lt;/ul>
&lt;p>例如：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh pr list --json number,title,author --jq &lt;span class="s1">&amp;#39;.[] | {number, title, author: .author.login}&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>如果你经常写脚本，建议尽快把 &lt;code>--json&lt;/code>、&lt;code>--jq&lt;/code> 这套用起来。&lt;/p>
&lt;h2 id="10-提效能力别名配置扩展">10. 提效能力：别名、配置、扩展
&lt;/h2>&lt;h3 id="alias">alias
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh &lt;span class="nb">alias&lt;/span> &lt;span class="nb">set&lt;/span> pv &lt;span class="s2">&amp;#34;pr view&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh &lt;span class="nb">alias&lt;/span> &lt;span class="nb">set&lt;/span> pc &lt;span class="s2">&amp;#34;pr create --fill&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pv
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh pc
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>适合把高频长命令压缩成自己熟悉的缩写。&lt;/p>
&lt;h3 id="config">config
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh config &lt;span class="nb">set&lt;/span> editor vim
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh config get editor
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>最常见的是设置默认编辑器，避免某些命令唤起你不想用的编辑器。&lt;/p>
&lt;h3 id="extension">extension
&lt;/h3>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh extension search
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh extension install owner/gh-extension-name
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh extension list
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh extension upgrade --all
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>扩展机制可以理解为给 &lt;code>gh&lt;/code> 加外挂命令。对于一些官方没内置、但社区已经做好了的能力，扩展通常是最快方案。&lt;/p>
&lt;h2 id="11-推荐的实际使用方式">11. 推荐的实际使用方式
&lt;/h2>&lt;p>如果你是个人开发者，可以先掌握这条最实用链路：&lt;/p>
&lt;ol>
&lt;li>&lt;code>gh auth login&lt;/code>&lt;/li>
&lt;li>&lt;code>gh repo clone owner/repo&lt;/code>&lt;/li>
&lt;li>&lt;code>git checkout -b feature/xxx&lt;/code>&lt;/li>
&lt;li>本地开发并提交&lt;/li>
&lt;li>&lt;code>git push -u origin feature/xxx&lt;/code>&lt;/li>
&lt;li>&lt;code>gh pr create --fill&lt;/code>&lt;/li>
&lt;li>&lt;code>gh pr checks&lt;/code>&lt;/li>
&lt;li>&lt;code>gh pr merge&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>如果你负责 CI/CD 或平台维护，再补上这些：&lt;/p>
&lt;ul>
&lt;li>&lt;code>gh workflow list&lt;/code>&lt;/li>
&lt;li>&lt;code>gh run list&lt;/code>&lt;/li>
&lt;li>&lt;code>gh run watch&lt;/code>&lt;/li>
&lt;li>&lt;code>gh release create&lt;/code>&lt;/li>
&lt;li>&lt;code>gh api&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>如果你经常参与开源协作，再补上这些：&lt;/p>
&lt;ul>
&lt;li>&lt;code>gh repo fork&lt;/code>&lt;/li>
&lt;li>&lt;code>gh repo sync&lt;/code>&lt;/li>
&lt;li>&lt;code>gh issue list&lt;/code>&lt;/li>
&lt;li>&lt;code>gh pr checkout&lt;/code>&lt;/li>
&lt;li>&lt;code>gh pr review&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="12-常见问题">12. 常见问题
&lt;/h2>&lt;h3 id="gh-和-git-到底怎么分工">&lt;code>gh&lt;/code> 和 &lt;code>git&lt;/code> 到底怎么分工？
&lt;/h3>&lt;p>一句话：&lt;/p>
&lt;ul>
&lt;li>&lt;code>git&lt;/code> 负责版本控制&lt;/li>
&lt;li>&lt;code>gh&lt;/code> 负责 GitHub 平台交互&lt;/li>
&lt;/ul>
&lt;p>最合理的方式不是二选一，而是组合使用。&lt;/p>
&lt;h3 id="为什么有些仓库命令要加--r">为什么有些仓库命令要加 &lt;code>-R&lt;/code>？
&lt;/h3>&lt;p>因为 &lt;code>gh&lt;/code> 默认优先使用当前目录对应的仓库上下文。如果你不在仓库目录里，或者你想操作别的仓库，就显式指定：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh pr list -R OWNER/REPO
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="命令太多记不住怎么办">命令太多记不住怎么办？
&lt;/h3>&lt;p>先记住三件事：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gh
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh &amp;lt;command&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gh &amp;lt;command&amp;gt; --help
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>gh&lt;/code> 的帮助系统本身就做得很好，遇到不熟悉的子命令时直接查帮助通常最快。&lt;/p>
&lt;h2 id="13-参考资料">13. 参考资料
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://cli.github.com/manual/index" target="_blank" rel="noopener"
>GitHub CLI manual&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://docs.github.com/en/enterprise-cloud@latest/github-cli/github-cli/quickstart" target="_blank" rel="noopener"
>GitHub CLI quickstart&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://docs.github.com/en/github-cli/github-cli/about-github-cli" target="_blank" rel="noopener"
>About GitHub CLI&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>