关于 GitHub CLI
GitHub CLI 是一个开源工具,用于从计算机的命令行使用 GitHub。当您从命令行工作时,可以使用 GitHub CLI 来节省时间并避免切换上下文。更多信息,请参阅“关于 GitHub CLI”。
您可以使用 GitHub CLI 操作 GitHub Codespaces 来:
- 列出所有 codespaces
- 创建一个新的 codespace
- 查看 codespace 的详细信息
- 停止 codespace
- 删除 codespace
- 重命名 codespace
- 重建 codespace
- SSH 连接到 codespace
- 在 Visual Studio Code 中打开 codespace
- 在 JupyterLab 中打开 codespace
- 复制文件到/从 codespace
- 修改 codespace 中的端口
- 访问 codespace 日志
- 访问远程资源
- 更改 codespace 的机器类型
安装 GitHub CLI
有关 GitHub CLI 的安装说明,请参阅GitHub CLI 代码库。
使用 GitHub CLI
如果您尚未这样做,请运行gh auth login
以使用您的 GitHub 帐户进行身份验证。
要使用gh
操作 GitHub Codespaces,请键入gh codespace SUBCOMMAND
或其别名gh cs SUBCOMMAND
。
例如,您可以使用一系列命令来操作 GitHub Codespaces:
- 列出您当前的 codespaces,以检查您是否有特定仓库的 codespace
gh codespace list
- 为所需的仓库分支创建一个新的 codespace
gh codespace create -r github/docs -b main
- SSH 连接到新的 codespace
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
命令的完整参考,包括每个命令所有可用选项的详细信息,请参阅 GitHub CLI 在线帮助中的“gh codespace”。或者,在命令行上,使用gh codespace --help
获取常规帮助,或使用gh codespace SUBCOMMAND --help
获取特定子命令的帮助。
注意
-c CODESPACE_NAME
标志用于许多命令,是可选的。如果您省略它,则会显示 codespaces 列表供您选择。
列出您所有的 codespaces
gh codespace list
列表包含每个 codespace 的唯一名称,您可以在其他gh codespace
命令中使用它。
codespace 分支名称末尾的星号表示该 codespace 中有未提交或未推送的更改。
创建新的 codespace
gh codespace create -r OWNER/REPO_NAME [-b BRANCH]
更多信息,请参阅“为仓库创建 codespace”。
查看 codespace 的详细信息
gh codespace view
运行此命令后,系统会提示您选择您现有的 codespaces 之一。然后将显示以下信息:
- codespace 的名称
- 状态(例如,“可用”或“已关闭”)
- 仓库
- Git 状态
- 用于创建 codespace 的开发容器配置文件的路径
- 机器类型
- 空闲超时
- 创建 codespace 的日期和时间
- 保留期限
更多信息,请参阅GitHub CLI 参考。
停止 codespace
gh codespace stop -c CODESPACE-NAME
更多信息,请参阅“深入了解 GitHub Codespaces”。
删除 codespace
gh codespace delete -c CODESPACE-NAME
更多信息,请参阅“删除 codespace”。
重命名 codespace
gh codespace edit -c CODESPACE-NAME -d 'DISPLAY-NAME'
更多信息,请参阅“重命名 codespace”。
重新构建 codespace
gh codespace rebuild
要执行完全重新构建,请在此命令末尾添加--full
。更多信息,请参阅“重新构建 codespace 中的容器”。
当您使用此命令重新构建 codespace 时,它使用当前保存在 codespace 系统中的devcontainer.json
文件。无论文件的当前状态是否已保存在源代码控制中,都会发生这种情况。更多信息,请参阅“开发容器简介”。
SSH 连接到 codespace
要在远程 codespace 机器上运行命令,您可以从终端 SSH 连接到 codespace。
gh codespace ssh -c CODESPACE-NAME
注意
您连接到的 codespace 必须运行 SSH 服务器。默认的开发容器映像包含一个 SSH 服务器,该服务器会自动启动。如果您的 codespaces 不是从默认映像创建的,您可以通过将以下内容添加到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 中打开 codespace
gh codespace code -c CODESPACE-NAME
您必须在本地计算机上安装 VS Code。更多信息,请参阅“在 Visual Studio Code 中使用 GitHub Codespaces”。
在 JupyterLab 中打开 codespace
gh codespace jupyter -c CODESPACE-NAME
您要打开的 codespace 中必须安装 JupyterLab 应用程序。默认的开发容器映像包含 JupyterLab,因此从默认映像创建的 codespaces 将始终安装 JupyterLab。有关默认映像的更多信息,请参阅“开发容器简介”和devcontainers/images
代码库。如果您在开发容器配置中未使用默认映像,则可以通过将ghcr.io/devcontainers/features/python
功能添加到您的devcontainer.json
文件中来安装 JupyterLab。您应该包含选项"installJupyterlab": true
。更多信息,请参阅devcontainers/features
代码库中python
功能的 README。
复制 codespace 中的文件
gh codespace cp [-r] SOURCE(S) DESTINATION
在文件或目录名称上使用前缀remote:
表示它位于 codespace 上。与 UNIX 的cp
命令一样,第一个参数指定源,最后一个参数指定目标。如果目标是目录,则可以指定多个源。如果任何源是目录,则使用-r
(递归)标志。
codespace 上的文件和目录的位置相对于远程用户的 home 目录。
示例
-
将文件从本地计算机复制到 codespace 的
$HOME
目录gh codespace cp myfile.txt remote
-
将文件复制到 codespace 中签出仓库的目录
gh codespace cp myfile.txt remote:/workspaces/REPOSITORY-NAME
-
将文件从 codespace 复制到本地计算机的当前目录
gh codespace cp remote:myfile.txt .
-
将三个本地文件复制到 codespace 的
$HOME/temp
目录gh codespace cp a1.txt a2.txt a3.txt remote:temp
-
将三个文件从 codespace 复制到本地计算机的当前工作目录
gh codespace cp remote:a1.txt remote:a2.txt remote:a3.txt .
-
将本地目录复制到 codespace 的
$HOME
目录gh codespace cp -r mydir remote
-
将目录从 codespace 复制到本地计算机,并更改目录名称
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”选项卡。