Skip to content
← 返回Git列表
Git任务与配置

GitHub 协作与管理 ​

认证与仓库准备 ​

gh · 在命令行无缝使用 GitHub ​

一些子命令(例如 config)有自己的使用文档。 更多信息:https://cli.github.com/manual/gh。

  • 克隆一个 GitHub 仓库到本地:

参见 gh repo。

  • 创建一个新 issue:

参见 gh issue create。

  • 查看并筛选当前仓库中未解决的 issue:
bash
gh issue {{[ls|list]}}
  • 在默认浏览器中查看指定 issue:
bash
gh issue view {{[-w|--web]}} {{issue_号|url}}
  • 创建一个拉取请求:

参见 gh pr create。

  • 在默认浏览器中查看拉取请求:
bash
gh pr view {{[-w|--web]}} {{pr_号|url|分支}}
  • 在本地检出指定的拉取请求:

参见 gh pr。

  • 查看当前仓库中拉取请求的状态:

参见 gh pr。

gh auth · 进行 GitHub 主机的身份验证 ​

更多信息:https://cli.github.com/manual/gh_auth。

  • 通过交互式提示进行登录:
bash
gh auth login
bash
echo {{你的令牌}} | gh auth login --with-token
  • 检查当前登录状态:
bash
gh auth status
  • 登出当前账户:
bash
gh auth logout
  • 登录指定的 GitHub 企业版服务器:
bash
gh auth login {{[-h|--hostname]}} {{github.example.com}}
  • 刷新身份验证凭据,并恢复为默认的最小权限范围(移除之前额外申请的权限):
bash
gh auth refresh --reset-scopes
  • 扩展当前权限范围:
bash
gh auth refresh {{[-s|--scopes]}} {{repo,admin:repo_hook,admin:org,admin:public_key,admin:org_hook,...}}

gh repo · 在命令行上操作 GitHub 仓库 ​

更多信息:https://cli.github.com/manual/gh_repo。

  • 创建一个新的仓库(如果没有设置仓库名称,默认将为当前目录的名称):
bash
gh repo create {{名称}}
  • 克隆一个仓库:
bash
gh repo clone {{拥有者}}/{{仓库}}
  • 复刻并克隆一个仓库:
bash
gh repo fork {{拥有者}}/{{仓库}} --clone
  • 在默认的网络浏览器中查看一个仓库:
bash
gh repo view {{仓库}} --web
  • 列出特定用户或组织拥有的仓库(如果未设置拥有者,默认拥有者将是当前登录用户):
bash
gh repo list {{拥有者}}
  • 仅列出非派生的仓库,并限制列出的仓库数量(默认:30):
bash
gh repo list {{拥有者}} --source -L {{限制数量}}
  • 列出具有特定主要编程语言的仓库:
bash
gh repo list {{拥有者}} --language {{语言名称}}

问题与任务跟踪 ​

gh issue · 管理 GitHub issue ​

更多信息:https://cli.github.com/manual/gh_issue。

  • 显示指定的 issue:
bash
gh issue view {{issue_号}}
  • 在默认网页浏览器中查看指定的 issue:
bash
gh issue view {{issue_号}} {{[-w|--web]}}
  • 在默认网页浏览器中创建一个新 issue:

参见 gh issue create。

  • 列出最近 10 个带有 "bug" 标签的 issue:
bash
gh issue {{[ls|list]}} {{[-L|--limit]}} 10 {{[-l|--label]}} "bug"
  • 列出由指定用户创建的已关闭的 issue:
bash
gh issue {{[ls|list]}} {{[-s|--state]}} closed {{[-A|--author]}} {{用户名}}
  • 在指定仓库中,显示与当前用户相关的 issue 的状态:
bash
gh issue status {{[-R|--repo]}} {{拥有者}}/{{仓库}}
  • 重新打开指定的 issue:
bash
gh issue reopen {{issue_号}}

gh issue create · 创建 GitHub 仓库中的 issue ​

更多信息:https://cli.github.com/manual/gh_issue_create。

  • 以交互式方式在当前仓库中创建一个新 issue:
bash
gh issue {{[new|create]}}
  • 以交互式方式创建一个带有 "bug" 标签的新 issue:
bash
gh issue {{[new|create]}} {{[-l|--label]}} "bug"
  • 以交互式方式创建一个新 issue 并分配给指定的用户:
bash
gh issue {{[new|create]}} {{[-a|--assignee]}} {{用户1,用户2,...}}
  • 创建一个具有标题和描述的新 issue,并分配给当前用户:
bash
gh issue {{[new|create]}} {{[-t|--title]}} "{{标题}}" {{[-b|--body]}} "{{描述}}" {{[-a|--assignee]}} "@me"
  • 以交互式方式创建一个新 issue,并从文件中读取其描述正文:
bash
gh issue {{[new|create]}} {{[-F|--body-file]}} {{路径/到/文件}}
  • 在默认网页浏览器中创建一个新 issue:
bash
gh issue {{[new|create]}} {{[-w|--web]}}
  • 显示帮助:
bash
gh issue {{[new|create]}} {{[-h|--help]}}

创建拉取请求 ​

gh pr create · 管理 GitHub 拉取请求 ​

更多信息:https://cli.github.com/manual/gh_pr_create。

  • 以交互式方式创建一个拉取请求:
bash
gh pr {{[new|create]}}
  • 创建一个拉取请求,并根据当前分支的提交记录自动填充标题和描述:
bash
gh pr {{[new|create]}} {{[-f|--fill]}}
  • 创建一个草稿拉取请求:
bash
gh pr {{[new|create]}} {{[-d|--draft]}}
  • 创建一个拉取请求并指定目标分支、标题和描述:
bash
gh pr {{[new|create]}} {{[-B|--base]}} {{目标分支}} {{[-t|--title]}} "{{标题}}" {{[-b|--body]}} "{{描述}}"
  • 在默认网页浏览器中打开以创建拉取请求:
bash
gh pr {{[new|create]}} {{[-w|--web]}}

检查与审阅拉取请求 ​

gh pr · 管理 GitHub 拉取请求 ​

一些子命令(例如 create)有自己的使用文档。 更多信息:https://cli.github.com/manual/gh_pr。

  • 创建一个拉取请求:

参见 gh pr create。

  • 在本地检出指定的拉取请求:
bash
gh {{[co|pr checkout]}} {{pr_号|url|分支}}
  • 查看当前分支上拉取请求所做的更改:
bash
gh pr diff
  • 批准当前分支关联的拉取请求:
bash
gh pr review {{[-a|--approve]}}
  • 以交互式方式合并当前分支关联的拉取请求:

参见 gh pr merge。

  • 以交互式方式编辑拉取请求:
bash
gh pr edit
  • 修改拉取请求的目标分支:
bash
gh pr edit {{[-B|--base]}} {{分支名}}
  • 查看当前仓库中拉取请求的状态:
bash
gh pr status

gh pr checks · 查看 GitHub 拉取请求的 CI 状态检查结果 ​

更多信息:https://cli.github.com/manual/gh_pr_checks。

  • 显示当前分支关联的拉取请求的状态检查结果:
bash
gh pr checks
  • 显示指定拉取请求的状态检查结果:
bash
gh pr checks {{pr_号}}
  • 实时监控状态检查,直到全部完成:
bash
gh pr checks {{pr_号}} --watch
  • 仅显示强制要求的检查结果:
bash
gh pr checks {{pr_号}} --required

gh pr view · 查看 GitHub 拉取请求的详细信息 ​

更多信息:https://cli.github.com/manual/gh_pr_view。

  • 查看当前分支关联的拉取请求:
bash
gh pr view
  • 查看指定的拉取请求:
bash
gh pr view {{123}}
  • 在默认网页浏览器中打开拉取请求:
bash
gh pr view {{[-w|--web]}}
  • 在终端显示评论信息:
bash
gh pr view {{123}} {{[-c|--comments]}}

合并拉取请求 ​

gh pr merge · 合并 GitHub 拉取请求 ​

更多信息:https://cli.github.com/manual/gh_pr_merge。

  • 以交互式方式合并当前分支关联的拉取请求:
bash
gh pr merge
  • 用合并提交方式合并指定拉取请求:
bash
gh pr merge {{pr_号}} {{[-m|--merge]}}
  • 压缩合并拉取请求,并删除该分支:
bash
gh pr merge {{pr_号}} {{[-sd|--squash --delete-branch]}}
  • 变基合并拉取请求:
bash
gh pr merge {{pr_号}} {{[-r|--rebase]}}
  • 开启自动合并(压缩合并):
bash
gh pr merge {{pr_号}} --auto {{[-s|--squash]}}
  • 使用管理员权限合并(如果允许):
bash
gh pr merge {{pr_号}} --admin

工作流与运行记录 ​

gh run · 查看、运行和监控最近的 GitHub Actions 工作流运行记录 ​

更多信息:https://cli.github.com/manual/gh_run。

  • 以交互式方式选择运行记录以查看其任务信息:
bash
gh run view
  • 显示指定运行记录的信息:
bash
gh run view {{工作流运行编号}}
  • 显示指定任务的各个步骤的信息:
bash
gh run view {{[-j|--job]}} {{任务编号}}
  • 显示指定任务的日志:
bash
gh run view {{[-j|--job]}} {{任务编号}} --log
  • 检查指定的工作流运行,如果运行失败则退出并返回非零状态码:
bash
gh run view {{工作流运行编号}} --exit-status && {{echo "运行中或已通过"}}
  • 以交互式方式选择一个正在进行的运行记录,并等待其运行完毕:
bash
gh run watch
  • 显示某个运行记录的任务并等待其运行完毕:
bash
gh run watch {{工作流运行编号}}
  • 重新运行指定的工作流:
bash
gh run rerun {{工作流运行编号}}

gh workflow · 列出、查看和运行 GitHub Actions 工作流 ​

更多信息:https://cli.github.com/manual/gh_workflow。

  • 以交互式方式选择一个工作流以查看其最近的任务:
bash
gh workflow view
  • 在默认浏览器中查看指定的工作流:
bash
gh workflow view {{id|工作流名称|文件名.yml}} {{[-w|--web]}}
  • 显示指定工作流的 YAML 定义:
bash
gh workflow view {{id|工作流名称|文件名.yml}} {{[-y|--yaml]}}
  • 显示指定 Git 分支或标签下的 YAML 定义:
bash
gh workflow view {{id|工作流名称|文件名.yml}} {{[-r|--ref]}} {{分支|标签名}} {{[-y|--yaml]}}
  • 列出工作流文件(使用 --all 参数包含已被禁用的工作流):
bash
gh workflow {{[ls|list]}}
  • 运行一个带参数的手动触发工作流:
bash
gh workflow run {{id|工作流名称|文件名.yml}} {{--raw-field 参数1=值1 --raw-field 参数2=值2 ...}}
  • 从 stdin 读取 JSON 参数,并在指定的分支或标签下运行手动工作流:
bash
echo '{{{"参数1": "值1", "参数2": "值2", ...}}}' | gh workflow run {{id|工作流名称|文件名.yml}} {{[-r|--ref]}} {{分支|标签名}} --json
  • 启用或禁用指定的工作流:
bash
gh workflow {{enable|disable}} {{id|工作流名称|文件名.yml}}

片段与其他协作工具 ​

gh gist · 在命令行上使用 GitHub Gists ​

更多信息:https://cli.github.com/manual/gh_gist。

  • 从一个以空格分隔的文件列表中创建一个新的 Gist:
bash
gh gist create {{路径/文件}}
  • 创建一个带有描述的新 Gist:
bash
gh gist create {{文件名}} --desc "{{描述}}"
  • 编辑一个 Gist:
bash
gh gist edit {{id_或_url}}
  • 列出当前登录用户所拥有的 Gist:
bash
gh gist list --limit {{int}}
  • 在默认浏览器中查看 Gist,且不渲染 Markdown:
bash
gh gist view {{id_或_url}} --web --raw

示例整理自 tldr-pages,作者为 tldr-pages team and contributors,遵循 CC BY 4.0。

继续阅读