关于源代码管理 GitHub Codespaces
您可以直接在代码空间内执行所需的所有 Git 操作。 例如,可以从远程存储库获取更改、切换分支、创建新分支、提交和推送更改以及创建拉取请求。 您可以使用代码空间内的集成终端输入 Git 命令,也可以单击图标和菜单选项以完成所有最常见的 Git 任务。 本指南解释如何使用图形用户界面来控制源代码。
有关 Git 支持Visual Studio Code的详细信息,请参阅文档中的“使用版本控制VS CodeVisual Studio Code”。
Web 客户端中的 Visual Studio Code 源代码管理使用与桌面应用程序相同的工作流 Visual Studio Code 。 有关详细信息,请参阅文档中的“使用版本控制VS CodeVisual Studio Code”。
用于 GitHub Codespaces 更新文件的典型工作流是:
- 在存储库的默认分支中 GitHub,创建一个代码空间。 请参阅“为代码库创建代码空间”。
- 在代码空间中,创建一个新的分支来开发。
- 进行更改并保存。
- 提交更改。
- 发起一个 Pull Request。
注意
默认情况下, GitHub Codespaces 使用 HTTPS 协议将数据传输到远程存储库和从远程存储库传输数据,并使用配置了对在其中创建代码空间的存储库的读取和写入访问权限进行身份验证 GITHUB_TOKEN 。 如果身份验证出现问题,请参阅 排查存储库身份验证问题。
关于自动创建分支
要为只有读取访问权限的存储库创建 codespace,必须具有对存储库创建分支的权限。
您无需在创建 codespace 之前分叉存储库。 例如,可以从存储库创建 codespace 来查看项目并进行实验性更改,然后删除不再需要的 codespace。
如果从代码空间提交或推送新分支, GitHub Codespaces 请在帐户下创建存储库分支并将其链接到代码空间,或者如果已有存储库分支,则将其链接到现有分支。 然后,可以将更改推送到分支并创建拉取请求,以向上游存储库提出更改。
如果从命令行进行提交,将看到一条提示,询问是否要继续将 codespace 链接到新的或现有的分支。 输入 y 以继续。 如果从 源代码管理 视图 VS Code提交更改,则代码空间会自动链接到分支,而不会提示你。
注意
- 如果删除分支存储库,则会删除任何链接到该分支的 codespace,即使最初是从上游存储库创建的 codespace 也是如此。
- 如果从命令行提交并拒绝输入新分叉
n,则应从命令行(而不是 VS Code“源代码管理”视图)推送更改。 如果使用“源代码管理”视图, VS Code 仍会尝试创建推送分支。
创建分叉或将代码空间链接到现有分叉时 GitHub Codespaces ,会发生以下情况。
- 与 codespace 关联的访问令牌将更新为包括对分支的
read和write权限,以及对上游存储库的read权限。 - 在 Git 设置中,将上游存储库重新命名为
upstream,分支将添加为名为origin的新远程存储库。
默认情况下,从编辑器用户界面访问的源代码管理命令(如“ 同步更改 ”按钮) VS Code以分支为目标。 如果使用的是命令行,则可使用 origin 引用分支和使用 upstream 引用上游存储库。 例如,可以从上游存储库提取更改,以确保 codespace 与项目的最新更改保持同步。
git fetch upstream
进行一些更改后,可以将更改推送到分支的功能分支。
git push origin my-feature-branch
有关详细信息,请参阅“叉子”。
发布从模板创建的 Codespace
从模板存储库或“代码空间”页上的模板创建代码空间时,在发布代码空间之前,不会在存储库 GitHub 中存储您所做的工作。 有关详细信息,请参阅“通过模板创建 codespace”。
如果你使用的是 codespace,可以从 VS Code Web 客户端或桌面应用程序发布它。
-
在活动栏中,单击“源代码管理”视图。

-
要暂存更改,请单击已添加或更改文件旁边的 +,如果你更改了多个文件并希望全部暂存,请单击“Changes”旁边的按钮********。

注意
如果从 GitHub 的空白模板开始,则不会看到更改列表,除非已将目录初始化为 Git 存储库。 若要发布从空白模板创建的 codespace,请在“源代码管理”视图中单击“发布到 GitHub”,然后跳到步骤 5。
-
若要提交暂存更改,请键入描述所做更改的提交消息,然后单击“提交”。

-
单击“发布分支”。

-
在“存储库名称”下拉列表中,键入新存储库的名称,然后选择“发布到 GitHub 专用存储库”或“发布到 GitHub 公共存储库”。

新存储库的所有者将是创建 codespace 时所使用的 GitHub 帐户。
-
(可选)在编辑器右下角显示的弹出窗口中,单击“在 GitHub 上打开”,查看 GitHub 上的新存储库。

创建或切换分支
-
如果当前分支未显示在状态栏中,请在 codespace 的底部右键单击状态栏,然后选择“源代码管理”。
-
单击状态栏中的分支名称。

-
在下拉菜单中,单击要切换到的分支或输入新分支的名称,然后单击“创建新分支”。

提示
如果最近有人在远程仓库中更改了某个文件,那么在你切换到的分支上,你可能要先将这些更改拉取到你的 codespace 中,才能看到它们。
提交更改
-
在活动栏中,单击“源代码管理”视图。

-
若要暂存更改,请单击已更改文件旁边的 ;如果您更改了多个文件并想将它们全部暂存,请单击 Changes 旁边的 。

-
在文本框中,键入提交消息,描述你所做的更改。

-
单击“提交”按钮右侧的向下箭头,然后从下拉菜单中选择“提交和推送”。

从远程仓库拉取更改
您可以随时将远程仓库的更改拉取到您的代码空间。
-
在活动栏中,单击“源代码管理”视图。

-
在侧栏顶部,单击 。

-
在下拉菜单中,单击Pull。
如果自创建代码空间以来开发容器配置已更改,则可以通过为代码空间重建容器来应用更改。 有关详细信息,请参阅“开发容器简介”。
将代码空间设置为自动获取新的更改
您可以将代码空间设置为自动获取远程仓库中任何新提交的详细信息。 这允许您查看仓库的本地副本是否过时,如果是,您可以选择拉取新的更改。
如果获取操作检测到远程仓库上的新更改,您将在状态栏中看到新提交的数量。 然后,您可以将更改拉取到本地副本。
-
单击活动栏底部的“管理”按钮。

-
在菜单中,单击****“设置”。
-
在设置页上,搜索:
autofetch。
-
若要获取为当前仓库注册的所有远程仓库的更新详情,请将 Git: Autofetch 设置为
all。
-
如果要更改每次自动获取之间的秒数,请编辑 Git: Autofetch Period 的值。
创建拉取请求
-
将更改提交到存储库的本地副本后,单击“源代码管理”边栏顶部的拉取请求图标。

-
检查作为合并来源的本地分支和仓库以及作为合并目标的远程分支和仓库是否正确。 然后为拉取请求提供标题和描述。

-
单击“创建”。
将更改推送到远程仓库
可以推送已保存并提交的更改。 这会将这些更改应用到远程仓库上的上游分支。 如果你还没有准备好创建拉取请求,或者你更希望在 GitHub 上创建拉取请求,那么你可能需要这样做。
-
在侧栏顶部,单击 。

-
在下拉菜单中,单击Push。
发布从模板创建的 Codespace
从模板存储库或“代码空间”页上的模板创建代码空间时,在发布代码空间之前,不会在存储库 GitHub 中存储您所做的工作。 有关详细信息,请参阅“通过模板创建 codespace”。
如果你使用的是 codespace,可以从 VS Code Web 客户端或桌面应用程序发布它。
-
在活动栏中,单击“源代码管理”视图。

-
要暂存更改,请单击已添加或更改文件旁边的 +,如果你更改了多个文件并希望全部暂存,请单击“Changes”旁边的按钮********。

注意
如果从 GitHub 的空白模板开始,则不会看到更改列表,除非已将目录初始化为 Git 存储库。 若要发布从空白模板创建的 codespace,请在“源代码管理”视图中单击“发布到 GitHub”,然后跳到步骤 5。
-
若要提交暂存更改,请键入描述所做更改的提交消息,然后单击“提交”。

-
单击“发布分支”。

-
在“存储库名称”下拉列表中,键入新存储库的名称,然后选择“发布到 GitHub 专用存储库”或“发布到 GitHub 公共存储库”。

新存储库的所有者将是创建 codespace 时所使用的 GitHub 帐户。
-
(可选)在编辑器右下角显示的弹出窗口中,单击“在 GitHub 上打开”,查看 GitHub 上的新存储库。

创建或切换分支
-
如果当前分支未显示在状态栏中,请在 codespace 的底部右键单击状态栏,然后选择“源代码管理”。
-
单击状态栏中的分支名称。

-
在下拉菜单中,单击要切换到的分支或输入新分支的名称,然后单击“创建新分支”。

提示
如果最近有人在远程仓库中更改了某个文件,那么在你切换到的分支上,你可能要先将这些更改拉取到你的 codespace 中,才能看到它们。
提交更改
-
在活动栏中,单击“源代码管理”视图。

-
若要暂存更改,请单击已更改文件旁边的 ;如果您更改了多个文件并想将它们全部暂存,请单击 Changes 旁边的 。

-
在文本框中,键入提交消息,描述你所做的更改。

-
单击“提交”按钮右侧的向下箭头,然后从下拉菜单中选择“提交和推送”。

从远程仓库拉取更改
您可以随时将远程仓库的更改拉取到您的代码空间。
-
在活动栏中,单击“源代码管理”视图。

-
在侧栏顶部,单击 。

-
在下拉菜单中,单击Pull。
如果自创建代码空间以来开发容器配置已更改,则可以通过为代码空间重建容器来应用更改。 有关详细信息,请参阅“开发容器简介”。
将代码空间设置为自动获取新的更改
您可以将代码空间设置为自动获取远程仓库中任何新提交的详细信息。 这允许您查看仓库的本地副本是否过时,如果是,您可以选择拉取新的更改。
如果获取操作检测到远程仓库上的新更改,您将在状态栏中看到新提交的数量。 然后,您可以将更改拉取到本地副本。
-
单击活动栏底部的“管理”按钮。

-
在菜单中,单击****“设置”。
-
在设置页上,搜索:
autofetch。
-
若要获取为当前仓库注册的所有远程仓库的更新详情,请将 Git: Autofetch 设置为
all。
-
如果要更改每次自动获取之间的秒数,请编辑 Git: Autofetch Period 的值。
创建拉取请求
-
将更改提交到存储库的本地副本后,单击“源代码管理”边栏顶部的拉取请求图标。

-
检查作为合并来源的本地分支和仓库以及作为合并目标的远程分支和仓库是否正确。 然后为拉取请求提供标题和描述。

-
单击“创建”。
将更改推送到远程仓库
可以推送已保存并提交的更改。 这会将这些更改应用到远程仓库上的上游分支。 如果你还没有准备好创建拉取请求,或者你更希望在 GitHub 上创建拉取请求,那么你可能需要这样做。
-
在侧栏顶部,单击 。

-
在下拉菜单中,单击Push。