关于 GitHub CLI
GitHub CLI 是一个开源工具,用于从计算机的命令行使用 GitHub。当你从命令行工作时,可以使用 GitHub CLI 节省时间,避免切换上下文。有关详细信息,请参阅“关于 GitHub CLI”。
你可以在 GitHub CLI 中操作 GitHub Codespaces 以
- 列出你的所有 Codespaces
- 创建一个新的 Codespace
- 查看 Codespace 的详细信息
- 停止代码空间
- 删除代码空间
- 重命名代码空间
- 重新构建 Codespace
- 通过 SSH 登录 Codespace
- 在 Visual Studio Code 中打开 Codespace
- 在 JupyterLab 中打开 Codespace
- 复制文件到/从代码空间
- 修改代码空间中的端口
- 访问代码空间日志
- 访问远程资源
- 更改代码空间的机器类型
安装 GitHub CLI
有关 GitHub CLI 安装说明,请参阅 GitHub CLI 存储库。
使用 GitHub CLI
如果您尚未执行此操作,请运行 gh auth login
以使用您的 GitHub 帐户进行身份验证。
要使用 gh
来处理 GitHub Codespaces,请键入 gh codespace SUBCOMMAND
或其别名 gh cs SUBCOMMAND
。
作为您可能用于处理 GitHub Codespaces 的一系列命令的示例,您可以
- 列出您的当前代码空间,以检查您是否为特定存储库拥有代码空间
gh codespace list
- 为所需的存储库分支创建一个新代码空间
gh codespace create -r github/docs -b main
- 通过 SSH 登录新代码空间
gh codespace ssh -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
- 将端口转发到您的本地计算机
gh codespace ports forward 8000:8000 -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
用于 GitHub Codespaces 的 gh
命令
以下部分为每项可用操作提供了示例命令。
有关用于 GitHub Codespaces 的 gh
命令的完整参考,包括每个命令的所有可用选项的详细信息,请参阅 "gh codespace" 的 GitHub CLI 在线帮助。或者,在命令行中,使用 gh codespace --help
获取一般帮助,或使用 gh codespace SUBCOMMAND --help
获取特定子命令的帮助。
注意:与许多命令一起使用的 -c CODESPACE_NAME
标志是可选的。如果您省略它,则会显示一个代码空间列表供您选择。
列出您的所有代码空间
gh codespace list
该列表包括每个代码空间的唯一名称,您可以在其他 gh codespace
命令中使用该名称。
代码空间分支名称末尾的星号表示该代码空间中有未提交或未推送的更改。
创建新代码空间
gh codespace create -r OWNER/REPO_NAME [-b BRANCH]
有关详细信息,请参阅“为存储库创建代码空间”。
查看代码空间的详细信息
gh codespace view
运行此命令后,系统会提示你选择一个现有的代码空间。然后显示以下信息
- 代码空间的名称
- 状态(例如,“可用”或“已关闭”)
- 存储库
- Git 状态
- 用于创建代码空间的 dev 容器配置文件的路径
- 机器类型
- 空闲超时
- 创建代码空间的日期和时间
- 保留期
有关详细信息,请参阅GitHub CLI 参考。
停止代码空间
gh codespace stop -c CODESPACE-NAME
有关详细信息,请参阅“深入了解 GitHub Codespaces”。
删除代码空间
gh codespace delete -c CODESPACE-NAME
有关详细信息,请参阅“删除代码空间”。
重命名代码空间
gh codespace edit -c CODESPACE-NAME -d 'DISPLAY-NAME'
有关详细信息,请参阅“重命名代码空间”。
重建代码空间
gh codespace rebuild
要执行完全重建,请在此命令末尾添加 --full
。有关详细信息,请参阅“在代码空间中重建容器”。
当您使用此命令重建代码空间时,它将使用当前保存在代码空间系统中的 devcontainer.json
文件。无论文件当前状态是否已保存在源代码管理中,都会发生这种情况。有关详细信息,请参阅“开发容器简介”。
通过 SSH 进入代码空间
要从终端在远程代码空间计算机上运行命令,您可以通过 SSH 进入代码空间。
gh codespace ssh -c CODESPACE-NAME
注意:您连接到的代码空间必须运行 SSH 服务器。默认开发容器映像包含一个 SSH 服务器,该服务器会自动启动。如果您的代码空间不是从默认映像创建的,您可以通过将以下内容添加到 devcontainer.json
文件中的 features
对象来安装和启动 SSH 服务器。
"features": {
// ...
"ghcr.io/devcontainers/features/sshd:1": {
"version": "latest"
},
// ...
}
有关 devcontainer.json
文件和默认容器映像的详细信息,请参阅“开发容器简介”。
GitHub Codespaces 自动创建一个本地 SSH 密钥,以提供无缝的身份验证体验。有关通过 SSH 连接的详细信息,请参阅 gh codespace ssh
。
在 Visual Studio Code 中打开代码空间
gh codespace code -c CODESPACE-NAME
您必须在本地计算机上安装 VS Code。有关详细信息,请参阅“在 Visual Studio Code 中使用 GitHub Codespaces”。
在 JupyterLab 中打开代码空间
gh codespace jupyter -c CODESPACE-NAME
JupyterLab 应用程序必须安装在您正在打开的代码空间中。默认开发容器映像包含 JupyterLab,因此从默认映像创建的代码空间将始终安装 JupyterLab。有关默认映像的详细信息,请参阅“开发容器简介”和 devcontainers/images
存储库。如果您在开发容器配置中未使用默认映像,可以通过将 ghcr.io/devcontainers/features/python
功能添加到 devcontainer.json
文件来安装 JupyterLab。您应该包含选项 "installJupyterlab": true
。有关详细信息,请参阅 devcontainers/features
存储库中 python
功能的 自述文件。
将文件复制到/从代码空间
gh codespace cp [-r] SOURCE(S) DESTINATION
在文件或目录名称上使用前缀 remote:
以指示它在代码空间中。与 UNIX cp
命令一样,第一个参数指定源,最后一个参数指定目标。如果目标是目录,则可以指定多个源。如果任何源是目录,请使用 -r
(递归)标志。
代码空间上文件和目录的位置相对于远程用户的 home 目录。
示例
-
将文件从本地计算机复制到代码空间的
$HOME
目录gh codespace cp myfile.txt remote
-
将文件复制到代码空间中签出存储库所在的目录
gh codespace cp myfile.txt remote:/workspaces/REPOSITORY-NAME
-
将文件从代码空间复制到本地计算机上的当前目录
gh codespace cp remote:myfile.txt .
-
将三个本地文件复制到代码空间的
$HOME/temp
目录gh codespace cp a1.txt a2.txt a3.txt remote:temp
-
将三个文件从代码空间复制到本地计算机上的当前工作目录
gh codespace cp remote:a1.txt remote:a2.txt remote:a3.txt .
-
将本地目录复制到代码空间的
$HOME
目录gh codespace cp -r mydir remote
-
将目录从代码空间复制到本地计算机,更改目录名称
gh codespace cp -r remote:mydir mydir-localcopy
有关 gh codespace cp
命令的详细信息,包括可使用的其他标志,请参阅 GitHub CLI 手册。
修改 Codespace 中的端口
你可以将 Codespace 上的端口转发到本地端口。只要进程正在运行,端口就会一直转发。要停止转发端口,请按 Control+C。
gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME
要查看已转发端口的详细信息,请输入 gh codespace ports
,然后选择一个 Codespace。
你可以设置已转发端口的可见性。有三种可见性设置
private
- 仅对你可见。这是转发端口时的默认设置。org
- 对拥有该存储库的组织的成员可见。public
- 对知道 URL 和端口号的任何人都可见。
gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME
你可以使用一个命令为多个端口设置可见性。例如
gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME
有关详细信息,请参阅“在 Codespace 中转发端口”。
访问 Codespace 日志
你可以查看 Codespace 的创建日志。输入此命令后,系统会要求你输入 SSH 密钥的密码。
gh codespace logs -c CODESPACE-NAME
有关创建日志的详细信息,请参阅“GitHub Codespaces 日志”。
访问远程资源
你可以使用 GitHub CLI 扩展在 Codespace 和本地计算机之间创建桥接,以便 Codespace 可以访问从你的计算机访问的任何远程资源。有关使用该扩展的详细信息,请参阅“使用 GitHub CLI 访问远程资源”。
注意:GitHub CLI 扩展目前处于测试阶段,可能会发生变化。
更改 Codespace 的计算机类型
gh codespace edit -m MACHINE-TYPE-NAME
有关详细信息,请参阅“更改 Codespace 的计算机类型”的“GitHub CLI”选项卡。