GitHub CLI
(或gh
)是 GitHub
的命令行界面,可在终端或脚本中使用。
使用GitHub CLI
,开发者可以从命令行检查GitHub
问题和拉取请求的状态,搜索特定的问题或拉取请求,创建/分叉存储库,或直接从命令行创建新问题和拉取请求。
在这篇文章中,我们将介绍一些常见的日常开发者工作流程。在这个过程中,我们将重点关注如何使用GitHub CLI
管理我们的问题和拉取请求。
什么是 GitHub CLI
?
GitHub CLI
最好被描述为“从命令行访问的GitHub
”。
目前,GitHub CLI
的版本为 v2.39.1
。它主要围绕三个GitHub
项目的功能组成:
Issues(问题): 允许你检查、创建和管理
GitHub
仓库中的问题。Pull Requests(拉取请求): 允许你查看、创建和管理拉取请求,这是贡献代码变更的主要方式。
Repositories(存储库): 允许你创建、复制和管理
GitHub
仓库。
使用GitHub CLI
,开发者可以执行以下与不同工件相关的命令:
create(创建): 创建新的问题或拉取请求。
list(列表): 列出问题、拉取请求或存储库。
status(状态): 查看问题或拉取请求的状态。
view(查看): 查看详细信息,可能是问题、拉取请求或存储库的详细信息。
checkout(仅限拉取请求): 签出(切换到)特定的拉取请求。
clone(仅限存储库): 克隆特定的存储库。
fork(仅限存储库): 复制存储库以创建一个分支(fork)。
正如之前提到的,在本文中,我们将仅关注与问题和拉取请求相关的命令。这些命令允许开发者通过命令行轻松地管理和与GitHub
上的问题和拉取请求交互。
使用 GitHub CLI
管理 GitHub
问题
如果在你的开发流程中经常需要处理 GitHub
问题,那么 GitHub CLI
可能有一些对你有帮助的命令。让我们来看看典型的工作日可能是什么样子,重点介绍使用 GitHub CLI
处理 GitHub
问题的一些示例。
列出
GitHub CLI
的问题| 描述 | 命令 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| 列出项目中的所有问题 |gh issue list
|
| 列出项目中的所有问题,包括已关闭的。"all"
表示列出所有状态的问题 |gh issue list --state "all"
(或gh issue list -s "all"
) |
| 列出所有分配给特定用户("n8ebel
")的项目中的问题 |gh issue list --assignee "n8ebel"
(或gh issue list -a "n8ebel"
) |使用
GitHub CLI
检查问题状态| 描述 | 命令 |
| --------------------------------------- | ------------------------------------------------------------ |
| 显示项目中相关问题的状态 |gh issue status
|
| 列出项目中所有已关闭的问题 |gh issue list --state "closed"
(或gh issue list -s "closed"
) |
| 列出项目中带有特定标签("bug
")的问题 |gh issue list --label "bug"
(或gh issue list -l "bug"
) |使用
GitHub CLI
查看问题| 描述 | 命令 |
| ------------------------------------------------------------ | ----------------------------------- |
| 查看项目中特定问题的详细信息,其中15
是问题的编号 |gh issue view 15
|
| 列出项目中由指定用户("n8bel
")负责且带有特定标签("bug
")的问题 |gh issue list -a "n8bel" -l "bug"
|使用
GitHub CLI
创建问题| 描述 | 命令 |
| --------------------------------------------------------- | --------------------------------------------- |
| 创建新问题 |gh issue create
|
| 创建一个标题为 "title
",正文为 "description
" 的新问题 |gh issue create -t "title" -b "description"
|
| 用于在浏览器中通过GitHub
网页界面创建新问题 |gh issue create --web
|
使用 GitHub CLI
管理拉取请求
列出拉取请求
| 描述 | 命令 |
| ------------------------------------------ | ------------------------------------------------------------ |
| 列出项目中所有拉取请求 |gh pr list
|
| 列出项目中所有拉取请求,包括打开的和关闭的 |gh pr list --state all
(或gh pr list -s "all"
) |
| 列出由特定用户(assignee
)负责的拉取请求 |gh pr list --assignee "n8ebel"
(或gh pr list -a "n8ebel"
) |检查拉取请求状态
| 描述 | 命令 |
| ----------------------------------- | --------------------------------------------------------- |
| 列出所有状态的拉取请求 |gh pr status
|
| 列出所有已关闭的拉取请求 |gh pr list --state "closed"
(或gh pr list -s "closed"
) |
| 列出所有带有 "bug
" 标签的拉取请求 |gh pr list --label "bug"
(或gh pr list -l "bug"
) |查看拉取请求
| 描述 | 命令 |
| ---------------------------------------------------------- | -------------------------------- |
| 列出拉取请求编号为 14 的详细信息 |gh pr view 14
|
| 列出由用户 "n8bel
" 创建且带有 "bug
" 标签的所有拉取请求 |gh pr list -a "n8bel" -l "bug"
|创建拉取请求
| 描述 | 命令 |
| ------------------------------------------------------------ | ------------------------------------------ |
| 创建新拉取请求 |gh pr create
|
| 创建一个标题为 "title
",正文为 "description
" 的新拉取请求 |gh pr create -t "title" -b "description"
|
| 用于通过网页界面创建新拉取请求 |gh pr create --web
|
| 检出与拉取请求编号为14
相关的拉取请求,包括来自分叉的拉取请求 |gh pr checkout 14
|
通过使用 GitHub CLI
,开发者可以在不离开终端的情况下,更加高效地处理项目的问题和拉取请求,从而提高开发工作流的整体效率。