首页 / 功能 / 代码 / GitNest
GitNest — osFoundry 内置的私有 Git 托管,支持克隆与推送
为工作区仓库提供真正的 Git over HTTPS,访问令牌完全由你掌控。
GitNest 是 osFoundry 内置的 Git 托管服务。工作区里的每个仓库都有一个真实的 Git 远端,你可以用任意标准 Git 客户端通过 HTTPS 克隆和推送——不需要插件,不需要导出,也不需要再注册一个账号。身份验证使用工作区访问令牌,由你自己创建、自己吊销。你克隆下来的仓库,正是 Web IDE 编辑的那一个、也是 Maestro 读取的那一个,因此本地的工作和工作区里的工作共享同一份提交历史。
快速解答
- 用标准 Git 通过 HTTPS 克隆和推送工作区里的任意仓库。
- 使用工作区访问令牌认证,令牌由你自己创建、限定范围并随时吊销。
- 仓库默认仅对所属工作区可见。
- Web IDE 背后就是同一个仓库,推送后立刻反映到工作区。
- 适配任意 Git 客户端——命令行、IDE,或是 CI 任务。
简介
GitNest 是属于你工作区的 Git 远端。它不是别处仓库的镜像,也不打算取代面向公众的开源托管——它是工作区自有代码的存放地,用你手头已有的 Git 就能从本地访问。因为它是真正的 Git 而不是一次导出,所以常用命令原样可用:克隆、抓取、开分支、推送,以及任何构建在这些命令之上的工具。
主要功能
- 基于 Git 官方参考实现的 Smart-HTTP 克隆、抓取与推送。
- 按用户签发的访问令牌,可设置有效期,也可一键吊销。
- 授权以工作区为边界——令牌只能访问自己所属工作区里的仓库。
- 读写权限按仓库分别判定,因此可以只给读权限、拒绝推送。
- 推送结果会同步回工作区,Web IDE 和 Maestro 都能看到你推上去的内容。
- 已发布版本受到保护:会改写它的推送将被直接拒绝,而不是悄悄生效。
在 osFoundry 中如何操作
- 创建访问令牌 — 打开「设置 → 仓库令牌」并创建一个。令牌只显示一次,请当场复制。记得设置有效期——永不过期的令牌,会让你永远无法安心。
- 复制克隆地址 — 在「代码」中打开仓库,使用克隆面板。地址中包含了工作区信息,因为 Git 客户端无法发送自定义请求头,地址必须自身完整。
- 克隆仓库 — 用该地址执行 git clone。Git 提示输入密码时填入你的令牌,用户名填什么都可以。凭据助手会帮你记住它。
- 照常提交和推送 — 用你惯用的命令开分支、提交、推送。整个工作流没有任何 osFoundry 专属的东西。
- 在工作区中查看结果 — 推送会同步回工作区,分支及其文件会出现在 Web IDE 中,Maestro 也能随时读取。
osFoundry 的对比
| 功能 | osFoundry | 大多数其他工具 |
|---|
| 代码存放在哪里 | 就在你自己工作区内的真实 Git 远端。 | 另一个托管账号,靠集成连接过来。 |
| 如何把代码取出来 | git clone——标准命令,没有导出这一步。 | 下载压缩包,或者装个插件来同步。 |
| 凭据 | 由你创建和吊销、带有效期的工作区令牌。 | 账号密码,或是授予第三方的 OAuth 权限。 |
| 编辑器与远端 | 两者背后是同一个仓库,永远不会出现偏差。 | 托管仓库镜像进编辑器,靠定时任务维持同步。 |
使用场景
- 习惯本地开发环境的开发者: 克隆工作区仓库,在自己熟悉的编辑器和工具链里干活,然后推回去。团队在工作区里就能看到改动,谁都不用导出任何东西。
- CI 流水线: 构建任务用一个带有效期的受限令牌克隆仓库、跑测试套件,全程不需要真人账号,也不必借用个人凭据。
- 不愿把代码放到公开托管的团队: 仓库始终只对工作区可见,同时照常使用普通 Git,不必为了隐私牺牲趁手的工具。
常见问题
GitNest 是什么?
GitNest 是 osFoundry 内置的 Git 托管服务。它为工作区中的每个仓库提供一个真实的 Git 远端,你可以用任意标准 Git 客户端通过 HTTPS 克隆和推送。
GitNest 是要取代 GitHub 吗?
不是,也没有这个打算。面向公众的开源托管以及围绕它的社区,仍然属于 GitHub。GitNest 存放的是你工作区自己的仓库,让你在本地和 osFoundry 中都能开发,而不必在两套系统之间搬运代码。
还能用我平时的 Git 命令吗?
可以。GitNest 使用 Git 官方参考实现,讲的是标准的 Git smart-HTTP 协议,因此克隆、抓取、分支和推送的行为与在别处完全一致。
GitNest 支持 SSH 吗?
目前不支持——GitNest 仅支持 HTTPS。认证方式是工作区访问令牌,而不是 SSH 密钥。
如何进行身份验证?
在设置中创建访问令牌,当 Git 提示输入密码时填入它即可,用户名不做校验。令牌只显示一次,可以设置有效期,也可以随时吊销。
吊销令牌之后会怎样?
它会立即失效,下一次请求就不再通过。已经克隆到某台机器上的内容仍留在那台机器上——吊销令牌切断的是之后的访问,它不会反过来删除本地工作副本。
我的仓库是私有的吗?
是的。仓库默认仅对所属工作区可见,而令牌也只能访问它所属工作区里的仓库。
推送之后工作区里能看到吗?
能。推送被接受后,分支及其文件会同步回工作区,Web IDE 会显示你推上去的内容,Maestro 也能读取。
可以向已发布的版本推送吗?
不可以,而且推送会在一开始就被拒绝,不会出现改了一半的情况。已发布版本是固定记录;如果一次推送会改写它,GitNest 会拒绝并告诉你是哪个分支,你的仓库保持原样。
可以在 CI 里使用 GitNest 吗?
可以。创建一个带有效期的令牌,存进 CI 服务商的密钥库,然后像对待任何其他 Git 远端一样用它克隆即可。
价格
仓库托管本身就包含在工作区里——不会按仓库、也不会按仓库数量另行收费。克隆和推送产生的流量,与其他带宽一样计入工作区的用量统计。
相关功能