当今应用程序的开发速度要求软件开发的速度、协作性和灵活性。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 为每个版本库定制了一个即用、一致的开发环境。它消除了设置问题,并在不影响本地机器的情况下确保各贡献者的统一性。
- 访问所需资源:它可让您在资源充足的云计算机器上工作,减轻本地机器的计算负担。这使您能够处理大型、资源繁重的项目,而不受硬件限制。
- 随时随地工作:有了 GitHub Codespaces,你就不再局限于一台设备。由于它是在网页浏览器上运行的,你可以从任何设备、任何地方访问你的代码空间。
- 选择你的编辑器:该平台支持多种编辑器,你可以选择适合自己的编辑器。你可以使用 VS Code 网络客户端、JupyterLab 或通过 Visual Studio Code 桌面版进行连接。
- 在多个项目上工作:你可以为不同的项目创建和管理多个代码空间,甚至为同一项目的不同分支创建和管理多个代码空间。这有助于保持工作的隔离和有序,降低意外更改影响其他工作的风险。
- 与队友结对编程:利用 Visual Studio Code 的实时共享扩展,你可以在代码空间内与团队成员进行实时协作。这项功能非常适合结对编程、调试会话和指导。
- 从代码空间发布 Web 应用程序:代码空间允许你转发端口并共享 URLS。这意味着你可以直接从云中创建一个演示应用程序,而你的队友可以访问并测试更改,然后再通过拉取请求最终完成。
了解Codespace的生命周期
了解 GitHub 上代码空间的生命周期对于管理从创建到删除的工作至关重要。生命周期从创建代码空间开始,到删除代码空间结束。在生命周期内,你可以随时断开或重新连接,而不会丢失正在运行的进程。更明确地说,停止或重新启动代码空间不会删除已保存的更改。
1. 创建代码空间
在 GitHub 上,你可以选择创建一个新的代码空间或打开一个现有的代码空间。有些开发者喜欢为每次会话创建一个新的代码空间,而有些开发者则会保留一个长期运行的代码空间,以便持续工作。该平台还提供从模板创建代码空间的选项。
不过,一次创建或运行的代码空间数量是有限制的。如果超过了限制,就需要删除或停止现有的代码空间,以便腾出空间启动新的代码空间。如果你经常使用新的代码空间,我建议你经常向 GitHub 推送你的提交,以确保新的代码空间始终有足够的空间。而对于长期运行的代码空间,在开始工作之前,一定要拉取最新的代码。
2. 在代码空间中保存修改
GitHub 代码空间的网页版默认开启了自动保存功能,因此保存更改内容不成问题。但如果在桌面的 VS Code 上使用,则需要手动启用自动保存功能。所有工作都保存在云虚拟机上,你可以随时停止,稍后再返回。在退出之前,平台甚至会提示你保存任何未保存的更改。但如果删除代码空间,其中的所有工作都会丢失,除非提交并推送。
默认情况下,不活动的代码空间会在 30 分钟后超时。你可以在设置面板中更改这一设置。不过不用担心超时问题,因为在此之前保存的数据仍然完好无损。
3. 重建代码空间
如果更新了开发容器配置,就可以重建代码空间。默认情况下,GitHub 会使用缓存镜像来重建代码空间。不过,如果你想从一个干净的环境开始,也可以选择完全重建。请记住,只有 /workspace 文件夹内的文件会被保存,其他文件都会在重建过程中被重置。您也可以选择完全重建,从头开始。
4. 停止代码空间
您可以随时停止代码空间。停止时,所有进程都会停止,但保存的工作仍会保留。终端历史记录也会保留。关闭浏览器标签页并不能停止代码空间。它仍在云中运行,运行时会向你收费。要停止代码空间,可以按照以下步骤操作:
- 转到你的代码空间 。
- 点击右端的三个点。
- 选择“Stop codespace”。
5. 删除代码空间
推送更改后,就可以安全地删除代码空间了。工作完成后,删除代码空间非常简单;只需确保先在 GitHub 上推送了更改,这样就不会丢失任何内容。如果有任何未提交的修改,GitHub 会要求你在删除前推送或导出它们。此外,默认情况下,停止的代码空间会在 30 天后自动删除。但请记住,即使删除后,代码空间仍可能计入计费,直到周期结束。
6. 使用GitHub Codespaces时失去连接
GitHub Codespaces 需要互联网连接才能运行。因此,如果失去网络连接,就无法使用代码空间。但幸运的是,未保存的更改仍然存在。因此,一旦重新连接,就可以从相同的状态恢复。如果你的连接不稳定,或者计划经常离线工作,我建议你使用本地容器,并使用 Dev Containers 扩展和 devcontainer.json。
GitHub Codespaces入门
现在让我们看看如何使用 GitHub 代码空间。与其从头开始,不如直接从模板库中创建代码空间。在本教程中,我们将使用基于浏览器的 VS Code 版本,它是 Codespaces 的默认编辑器。如果需要,稍后可以切换到其他编辑器,并更改默认设置。
第 1 步:创建代码空间
在这一步中,我们将使用现成的 GitHub 模板创建一个新的代码空间。这将帮助我们快速启动或创建一个开发环境,而无需在本地机器上设置任何东西。
- 首先打开 github/haikus-for-codespaces 模板库。
- 点击“Use this template”。
- 然后,选择“Open in a codespace”,如下图所示。
这样,模板就会自动克隆到你的新代码空间中。
第 2 步:运行应用程序
在这一步中,我们将运行应用程序查看其运行情况。这样,我们就可以在平台内测试实时更改。
从下图中可以看到,终端已准备就绪。现在让我们运行应用程序。
- 下一步是输入 npm run dev 命令。这将使用 package.json 中的 dev 脚本运行 Node.js 应用程序。
- 应用程序运行时会出现一个弹出窗口。点击“Open in Browser”查看。
- 在浏览器中打开后,您将看到以下内容。
第 3 步:编辑和预览更改
在这一步中,我们将编辑项目内容并查看实时更改。这将有助于我们理解实时更新在代码空间中是如何工作的。
- 转到资源管理器,打开 haikus.json 文件。
- 现在更改第一个或所有俳句的文本,然后刷新浏览器选项卡以查看更新。
- 如果标签页被误关闭,请转到 VS Code 中的端口标签页,点击转发端口旁边的浏览器图标。
第 4 步:提交并推送更改
现在我们已经做了一些修改,可以将它们推送到 GitHub 上。为此:
- 在活动栏中点击“Source Control”视图。
- 点击 “+”,输入提交信息,然后点击“Commit”,将更改后的文件放入阶段。
- 现在,点击“Publish Branch”。
- 登录 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 资源库的无缝集成等功能,它能让开发人员将更多精力放在构建上,而不是配置上。简而言之,该平台重新定义了现代开发,使其更加完善。
评论留言