使用GitHub Codespaces随时随地写代码

使用GitHub Codespaces随时随地写代码

当今应用程序的开发速度要求软件开发的速度、协作性和灵活性。GitHub Codespaces 通过解决老生常谈的环境设置问题实现了这一点。不用再花几个小时搜索工具和依赖项,只需点击几下,就能直接在云中启动完整的开发设置。由于 Codespaces 可直接与 GitHub 仓库协同工作,因此更容易上手和运行。它还支持远程工作,并能在不同的设置中保持一致性,是个人、团队和开源贡献者的强大工具。在本文中,我们将全面了解 GitHub Codespaces,包括其功能、应用、定价以及如何免费使用。

什么是GitHub Codespaces?

GitHub Codespaces 是一种基于云的开发环境,可在虚拟机上的 Docker 容器内运行。这样,您就可以直接在浏览器上或通过 Visual Studio Code 编写代码,而无需在本地安装任何东西。每个代码空间都在 Linux 环境中运行,可以使用版本库中定义的配置文件进行设置。这种做法被称为“配置即代码”(Configuration-as-Code)。

配置即代码

在 GitHub 代码空间,你可以从模板或版本库的任何分支启动代码空间,从而轻松保持工作的组织性和一致性。它允许你使用开发容器自定义工具和运行时,并使用 Dotfiles 设置个人偏好。设置同步还能让你体验到与本地 VS 代码一样的体验。此外,它还能让你的开发设置变得简单且可重复,帮助你随时随地快速开始编码。

推荐阅读:Git 和 Github 入门

GitHub Codespaces的特点

以下是 GitHub Codespaces 提供的一些主要功能:

GitHub Codespaces的特点

  1. 预配置开发环境:GitHub Codespaces 为每个版本库定制了一个即用、一致的开发环境。它消除了设置问题,并在不影响本地机器的情况下确保各贡献者的统一性。
  2. 访问所需资源:它可让您在资源充足的云计算机器上工作,减轻本地机器的计算负担。这使您能够处理大型、资源繁重的项目,而不受硬件限制。
  3. 随时随地工作:有了 GitHub Codespaces,你就不再局限于一台设备。由于它是在网页浏览器上运行的,你可以从任何设备、任何地方访问你的代码空间。
  4. 选择你的编辑器:该平台支持多种编辑器,你可以选择适合自己的编辑器。你可以使用 VS Code 网络客户端、JupyterLab 或通过 Visual Studio Code 桌面版进行连接。
  5. 在多个项目上工作:你可以为不同的项目创建和管理多个代码空间,甚至为同一项目的不同分支创建和管理多个代码空间。这有助于保持工作的隔离和有序,降低意外更改影响其他工作的风险。
  6. 与队友结对编程:利用 Visual Studio Code 的实时共享扩展,你可以在代码空间内与团队成员进行实时协作。这项功能非常适合结对编程、调试会话和指导。
  7. 从代码空间发布 Web 应用程序:代码空间允许你转发端口并共享 URLS。这意味着你可以直接从云中创建一个演示应用程序,而你的队友可以访问并测试更改,然后再通过拉取请求最终完成。

了解Codespace的生命周期

了解 GitHub 上代码空间的生命周期对于管理从创建到删除的工作至关重要。生命周期从创建代码空间开始,到删除代码空间结束。在生命周期内,你可以随时断开或重新连接,而不会丢失正在运行的进程。更明确地说,停止或重新启动代码空间不会删除已保存的更改。

1. 创建代码空间

在 GitHub 上,你可以选择创建一个新的代码空间或打开一个现有的代码空间。有些开发者喜欢为每次会话创建一个新的代码空间,而有些开发者则会保留一个长期运行的代码空间,以便持续工作。该平台还提供从模板创建代码空间的选项。

不过,一次创建或运行的代码空间数量是有限制的。如果超过了限制,就需要删除或停止现有的代码空间,以便腾出空间启动新的代码空间。如果你经常使用新的代码空间,我建议你经常向 GitHub 推送你的提交,以确保新的代码空间始终有足够的空间。而对于长期运行的代码空间,在开始工作之前,一定要拉取最新的代码。

2. 在代码空间中保存修改

GitHub 代码空间的网页版默认开启了自动保存功能,因此保存更改内容不成问题。但如果在桌面的 VS Code 上使用,则需要手动启用自动保存功能。所有工作都保存在云虚拟机上,你可以随时停止,稍后再返回。在退出之前,平台甚至会提示你保存任何未保存的更改。但如果删除代码空间,其中的所有工作都会丢失,除非提交并推送。

默认情况下,不活动的代码空间会在 30 分钟后超时。你可以在设置面板中更改这一设置。不过不用担心超时问题,因为在此之前保存的数据仍然完好无损。

3. 重建代码空间

如果更新了开发容器配置,就可以重建代码空间。默认情况下,GitHub 会使用缓存镜像来重建代码空间。不过,如果你想从一个干净的环境开始,也可以选择完全重建。请记住,只有 /workspace 文件夹内的文件会被保存,其他文件都会在重建过程中被重置。您也可以选择完全重建,从头开始。

4. 停止代码空间

您可以随时停止代码空间。停止时,所有进程都会停止,但保存的工作仍会保留。终端历史记录也会保留。关闭浏览器标签页并不能停止代码空间。它仍在云中运行,运行时会向你收费。要停止代码空间,可以按照以下步骤操作:

  1. 转到你的代码空间
  2. 点击右端的三个点。
  3. 选择“Stop codespace”。

停止代码空间

5. 删除代码空间

推送更改后,就可以安全地删除代码空间了。工作完成后,删除代码空间非常简单;只需确保先在 GitHub 上推送了更改,这样就不会丢失任何内容。如果有任何未提交的修改,GitHub 会要求你在删除前推送或导出它们。此外,默认情况下,停止的代码空间会在 30 天后自动删除。但请记住,即使删除后,代码空间仍可能计入计费,直到周期结束。

6. 使用GitHub Codespaces时失去连接

GitHub Codespaces 需要互联网连接才能运行。因此,如果失去网络连接,就无法使用代码空间。但幸运的是,未保存的更改仍然存在。因此,一旦重新连接,就可以从相同的状态恢复。如果你的连接不稳定,或者计划经常离线工作,我建议你使用本地容器,并使用 Dev Containers 扩展和 devcontainer.json。

GitHub Codespaces入门

现在让我们看看如何使用 GitHub 代码空间。与其从头开始,不如直接从模板库中创建代码空间。在本教程中,我们将使用基于浏览器的 VS Code 版本,它是 Codespaces 的默认编辑器。如果需要,稍后可以切换到其他编辑器,并更改默认设置。

第 1 步:创建代码空间

在这一步中,我们将使用现成的 GitHub 模板创建一个新的代码空间。这将帮助我们快速启动或创建一个开发环境,而无需在本地机器上设置任何东西。

  1. 首先打开 github/haikus-for-codespaces 模板库。
  2. 点击“Use this template”。
  3. 然后,选择“Open in a codespace”,如下图所示。

创建代码空间

这样,模板就会自动克隆到你的新代码空间中。

第 2 步:运行应用程序

在这一步中,我们将运行应用程序查看其运行情况。这样,我们就可以在平台内测试实时更改。

从下图中可以看到,终端已准备就绪。现在让我们运行应用程序。

运行应用程序

  1. 下一步是输入 npm run dev 命令。这将使用 package.json 中的 dev 脚本运行 Node.js 应用程序。

运行 Node.js 应用程序

  1. 应用程序运行时会出现一个弹出窗口。点击“Open in Browser”查看。

在浏览器中打开

  1. 在浏览器中打开后,您将看到以下内容。

程序预览

第 3 步:编辑和预览更改

在这一步中,我们将编辑项目内容并查看实时更改。这将有助于我们理解实时更新在代码空间中是如何工作的。

  1. 转到资源管理器,打开 haikus.json 文件。

haikus.json 文件 提交更改

  1. 现在更改第一个或所有俳句的文本,然后刷新浏览器选项卡以查看更新。

刷新浏览器选项卡以查看更新

  1. 如果标签页被误关闭,请转到 VS Code 中的端口标签页,点击转发端口旁边的浏览器图标。

转发端口

第 4 步:提交并推送更改

现在我们已经做了一些修改,可以将它们推送到 GitHub 上。为此:

  1. 在活动栏中点击“Source Control”视图。

“Source Control”视图

  1. 点击 “+”,输入提交信息,然后点击“Commit”,将更改后的文件放入阶段。

输入提交信息

  1. 现在,点击“Publish Branch”。

发布分支

  1. 登录 GitHub 账户,为新仓库命名。然后,选择以公开或私有方式发布。你还可以使用“Open on GitHub”(在 GitHub 上打开)查看新仓库中的更改。

查看新仓库中的更改

GitHub Codespaces定价

既然我们已经学会了如何使用 GitHub Codespaces,那就来了解一下使用它的费用吧。GitHub 根据存储和计算时间提供灵活的定价模式,如下所示:

计划 包含的使用量 超量费用
免费个人版 60 小时/月(基本 Linux 计算) 每额外小时 $0.18
GitHub 团队/企业版 按计划不同 按量付费或者按小时付费

如表中所述,GitHub Codespaces 免费向个人用户提供每月 60 小时的标准计算时间和最多 15 GB 的存储空间,这使它成为业余项目、学习或测试工作流程的绝佳选择,且无需任何前期费用。除了免费层级,GitHub 还提供基于使用量的定价,确保你只需为使用付费。

何时使用GitHub Codespaces?

Github Codespaces 是许多任务的理想选择,例如

  • 贡献开源:GitHub Codespaces 可让你在基于云的集成开发环境中立即开始编码,消除了设置本地环境的障碍。这让新的贡献者更容易快速、自信地参与开源项目。
  • 学习和教学:教师可以与学生或研讨会参与者共享预先配置好的环境,确保每个人都在同一起跑线上起步。这促进了包容性学习,降低了进入开源生态系统的技术门槛。
  • 企业项目:Codespaces 可确保各团队拥有安全、一致的开发环境,在受监管或分布式环境中尤其有用。企业工作流程中的开源工具可从这些标准中受益,加强协作,减少摩擦。
  • 尝试新项目:您可以探索和尝试开源软件源,而无需花费时间在本地配置依赖关系。这可以激发好奇心,降低使用新技术或工具所需的投入。

GitHub.dev与GitHub Codespaces

如果你以前用过 GitHub,你可能见过 GitHub.dev,并想过它与 GitHub Codespaces 有什么不同。虽然它们看似相似,但作用却大相径庭。

  • GitHub.dev 是一个轻量级代码编辑器,完全在浏览器上运行,快速而简单。它最适合小规模的代码编辑,因为你不能在上面运行或测试代码。
  • 另一方面,GitHub Codespaces 为你提供了一个完整的开发环境。你可以在同一平台上进行代码编写、运行和调试,无需在本地进行任何设置。

除非提交,否则 GitHub.dev 中的工作不会保存;一旦关闭,未保存的工作就会消失。但在 Codespaces 中,即使你关闭了它,你的工作进度也会保存下来。此外,Codespaces 还能与 VS Code 或 JetBrains 等完整的集成开发环境配合使用,并允许你在本地和云端同步设置。对于大型项目和团队合作来说,这是一个更好的选择。

现在,让我们根据各种功能对两者进行比较:

特性 GitHub.dev GitHub Codespaces
使用场景 快速编辑 完整开发
设置 无需设置 提供预配置的容器,包含工具
IDE 支持 基础编辑器 支持 VS Code、JetBrains、Jupyterlab
自定义选项 非常有限 高度灵活
资源 不占用资源 用户管理计算和存储资源
部署 不适用于部署 支持完整部署
访问 适用于所有仓库 需要付费计划和更多资源

小结

GitHub Codespaces 改变了开发人员的编码方式。它消除了设置上的困难,提供了功能强大的云端开发环境,简化了工作流程,提高了工作效率。无论您是独自工作、团队协作,还是作为学生刚刚开始工作,Codespaces 都能确保您获得快速、一致和灵活的体验。凭借浏览器内开发、全面的集成开发环境支持以及与 GitHub 资源库的无缝集成等功能,它能让开发人员将更多精力放在构建上,而不是配置上。简而言之,该平台重新定义了现代开发,使其更加完善。

评论留言