--- title: 将 GitHub Codespaces 与 GitHub CLI 配合使用 shortTitle: GitHub CLI intro: '可以使用 {% data variables.product.product_name %} 命令行界面 `gh` 直接从命令行使用 {% data variables.product.prodname_github_codespaces %}。' miniTocMaxHeadingLevel: 3 versions: fpt: '*' ghec: '*' type: how_to topics: - Codespaces - CLI - Developer redirect_from: - /codespaces/developing-in-codespaces/using-codespaces-with-github-cli ms.openlocfilehash: e9a268273e0a6d85a17a795f593e7bd3a7885718 ms.sourcegitcommit: 0a6e3eee6eea9b1e445aea1e4461d64cf6b63218 ms.translationtype: HT ms.contentlocale: zh-CN ms.lasthandoff: 11/14/2022 ms.locfileid: '148163495' --- ## 关于 {% data variables.product.prodname_cli %} {% data reusables.cli.about-cli %} 有关详细信息,请参阅“[关于 {% data variables.product.prodname_cli %}](/github-cli/github-cli/about-github-cli)。” 可以在 {% data variables.product.prodname_cli %} 中使用 {% data variables.product.prodname_github_codespaces %} 执行以下操作: - [列出所有代码空间](#list-all-of-your-codespaces) - [创建新的代码空间](#create-a-new-codespace) - [停止 codespace](#stop-a-codespace) - [删除 codespace](#delete-a-codespace) - [重命名 codespace](#rename-a-codespace) - [通过 SSH 连接到 codespace](#ssh-into-a-codespace) - [在 {% data variables.product.prodname_vscode %} 中打开 codespace](#open-a-codespace-in--data-variablesproductprodname_vscode-) - [在 JupyterLab 中打开 codespace](#open-a-codespace-in-jupyterlab) - [将文件复制到代码空间/从代码空间复制文件](#copy-a-file-tofrom-a-codespace) - [修改 codespace 中的端口](#modify-ports-in-a-codespace) - [访问 codespace 日志](#access-codespace-logs) - [访问远程资源](#access-remote-resources) - [更改 codespace 的计算机类型](#change-the-machine-type-of-a-codespace) ## 安装 {% data variables.product.prodname_cli %} {% data reusables.cli.cli-installation %} ## 使用 {% data variables.product.prodname_cli %} 如果尚未执行此操作,请运行 `gh auth login` 对 {% data variables.product.prodname_dotcom %} 帐户进行身份验证。 若要使用 `gh` 处理 {% data variables.product.prodname_github_codespaces %},请键入 `gh codespace SUBCOMMAND` 或其别名 `gh cs SUBCOMMAND`。 作为可用于处理 {% data variables.product.prodname_github_codespaces %} 的一系列命令的示例,您可以: * 列出当前 codespace,检查是否有特定存储库的 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` ## {% data variables.product.prodname_github_codespaces %} 的 `gh` 命令 以下各节给出了每个可用操作的示例命令。 有关 {% data variables.product.prodname_github_codespaces %} 的 `gh` 命令的完整参考,包括每个命令的所有可用选项的详细信息,请参阅 {% data variables.product.prodname_cli %} 联机帮助以了解“[gh codespace](https://cli.github.com/manual/gh_codespace)”。 或者,在命令行上,使用 `gh codespace --help` 获取常规帮助,或者使用 `gh codespace SUBCOMMAND --help` 获取特定子命令的帮助。 {% note %} 注意:与许多命令一起使用的 `-c CODESPACE_NAME` 标志是可选的。 如果省略它,则会显示一个代码空间列表供您选择。 {% endnote %} ### 列出所有代码空间 ```shell gh codespace list ``` 该列表包含每个 codespace 的唯一名称,可在其他 `gh codespace` 命令中使用。 codespace 分支名称末尾的星号表示该 codespace 中存在未提交或未推送的更改。 ### 创建新的代码空间 ```shell gh codespace create -r OWNER/REPO_NAME [-b BRANCH] ``` 有关详细信息,请参阅“[为存储库创建 codespace](/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository)”。 ### 停止代码空间 ```shell gh codespace stop -c CODESPACE-NAME ``` 有关详细信息,请参阅“深入了解 [{% data variables.product.prodname_github_codespaces %}](/codespaces/getting-started/deep-dive#closing-or-stopping-your-codespace)”。 ### 删除代码空间 ```shell gh codespace delete -c CODESPACE-NAME ``` 有关详细信息,请参阅“[删除 codespace](/codespaces/developing-in-codespaces/deleting-a-codespace)”。 ### 重命名 codespace ```shell gh codespace edit -c CODESPACE-NAME -d DISPLAY-NAME ``` 有关详细信息,请参阅“[重命名 codespace](/codespaces/customizing-your-codespace/renaming-a-codespace)”。 ### SSH 到代码空间 要在远程代码空间计算机上运行命令,请从终端通过 SSH 进入代码空间。 ```shell gh codespace ssh -c CODESPACE-NAME ``` {% note %} 注意:{% data reusables.codespaces.ssh-server-installed %}
有关 `devcontainer.json` 文件和默认容器映像的详细信息,请参阅“[开发容器简介](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers)”。 {% endnote %} {% data variables.product.prodname_github_codespaces %} 在创建时将 GitHub SSH 密钥复制到代码空间中,以获得无缝的身份验证体验。 系统可能会要求您输入 SSH 密钥的密码,之后您将收到来自远程代码空间计算机的命令提示。 如果没有 SSH 密钥,请按照“[生成新的 SSH 密钥并将其添加到 ssh-agent](/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)”中的说明进行操作。 ### 在 {% data variables.product.prodname_vscode %} 中打开代码空间 ```shell gh codespace code -c CODESPACE-NAME ``` 必须在本地计算机上安装 {% data variables.product.prodname_vscode_shortname %}。 有关详细信息,请参阅“[在 {% data variables.product.prodname_vscode %} 中使用 {% data variables.product.prodname_github_codespaces %}](/codespaces/developing-in-codespaces/using-github-codespaces-in-visual-studio-code)”。 ### 在 JupyterLab 中打开 codespace ```shell gh codespace jupyter -c CODESPACE-NAME ``` {% data reusables.codespaces.jupyterlab-installed-in-codespace %} ### 将文件复制到代码空间/从代码空间复制文件 ```shell gh codespace cp [-r] SOURCE(S) DESTINATION ``` 使用文件或目录名称上的前缀 `remote:` 来指示它位于 codespace 上。 与 UNIX `cp` 命令一样,第一个参数指定源,最后一个参数指定目标。 如果目标是目录,则可以指定多个来源。 如果任何源是目录,请使用 `-r`(递归)标志。 代码空间上文件和目录的位置相对于远程用户的主目录。 #### 示例 * 将文件从本地计算机复制到 codespace 的 `$HOME` 目录: `gh codespace cp myfile.txt remote:` * 将文件复制到代码空间中检出存储库的目录: `gh codespace cp myfile.txt remote:/workspaces/REPOSITORY-NAME` * 将文件从代码空间复制到本地计算机上的当前目录: `gh codespace cp remote:myfile.txt .` * 将三个本地文件复制到 codespace 的 `$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 .` * 将本地目录复制到 codespace 的 `$HOME` 目录: `gh codespace cp -r mydir remote:` * 将目录从代码空间复制到本地计算机,更改目录名称: `gh codespace cp -r remote:mydir mydir-localcopy` 有关 `gh codespace cp` 命令的详细信息,包括可以使用的其他标志,请参阅 [{% data variables.product.prodname_cli %} 手册](https://cli.github.com/manual/gh_codespace_cp)。 ### 修改代码空间中的端口 您可以将代码空间上的端口转发到本地端口。 只要进程正在运行,端口就会保持转发状态。 若要停止转发端口,请按 Control+C。 ```shell gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME ``` 若要查看转发端口的详细信息,请输入 `gh codespace ports` 并选择一个 codespace。 您可以设置转发端口的可见性。 {% data reusables.codespaces.port-visibility-settings %} ```shell gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME ``` 您可以使用一个命令设置多个端口的可见性。 例如: ```shell gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME ``` 有关详细信息,请参阅“[在 codespace 中转发端口](/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace)。” ### 访问代码空间日志 您可以查看代码空间的创建日志。 输入此命令后,系统将要求您输入 SSH 密钥的密码。 ```shell gh codespace logs -c CODESPACE-NAME ``` 有关创建日志的详细信息,请参阅“[{% data variables.product.prodname_github_codespaces %} 日志](/codespaces/troubleshooting/github-codespaces-logs#creation-logs)”。 ### 访问远程资源 可以使用 {% data variables.product.prodname_cli %} 扩展在 codespace 和本地计算机之间创建网桥,以便 codespace 可以访问可从计算机访问的任何远程资源。 有关使用扩展的详细信息,请参阅“[使用 {% data variables.product.prodname_cli %} 访问远程资源](https://github.com/github/gh-net#codespaces-network-bridge)”。 {% note %} 注意:{% data variables.product.prodname_cli %} 扩展目前为 beta 版本,可能会有变动。 {% endnote %} ### 更改 codespace 的计算机类型 ```shell gh codespace edit -m MACHINE-TYPE-NAME ``` 有关详细信息,请参阅“[更改 codespace 的计算机类型](/codespaces/customizing-your-codespace/changing-the-machine-type-for-your-codespace)”的“{% data variables.product.prodname_cli %}”选项卡。