远程知识库(Git)
将工作空间知识库与远程 Git 仓库连接,实现内容同步和分支管理
远程知识库(Git)
工作空间的知识库可以连接到远程 Git 仓库(如 GitHub、GitLab、Gitee 等),实现内容的双向同步。这对于需要与外部代码仓库或文档仓库保持一致的团队尤其有用。
适用场景
| 场景 | 示例 |
|---|---|
| 代码仓库同步 | 将项目代码仓库连接到工作空间,AI 助手可直接读取和分析代码 |
| 文档仓库协作 | 团队在 Git 仓库中维护文档,工作空间自动同步最新内容 |
| 多端编辑 | 本地用 IDE 编辑,工作空间中 AI 助手同步使用 |
连接远程仓库
初始化模式
连接远程仓库时,支持两种初始化模式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| Clone(克隆远程) | 从远程仓库克隆内容到工作空间,清空已有数据 | 远程仓库已有内容,需要拉取到工作空间 |
| Push(推送本地) | 在远程 Git 平台创建新仓库,将本地内容推送上去 | 本地已有内容,需要推送到新的远程仓库 |
选择 Clone 模式时:
- 输入远程仓库地址和访问令牌
- 可选择克隆的分支(默认为主分支)
- 需二次确认(输入工作空间名称)以防止误操作
- 克隆完成后自动刷新文件树

选择 Push 模式时:
- 填写 Git 平台地址、仓库名、命名空间(如 GitLab Group)
- 选择仓库可见性(公开/内部/私有)
- 系统自动在远程平台创建仓库并推送本地内容

保存后也可以进一步修改
- 重新克隆
- 或者将当前空间推送到(创建)新的git项目

认证方式
目前支持 HTTPS + Token 认证:
| 平台 | Token 获取方式 |
|---|---|
| GitHub | Settings → Developer settings → Personal access tokens |
| GitLab | User Settings → Access Tokens |
| Gitee | 设置 → 私人令牌 |
Token 会加密存储,不会以明文形式保存或传输。

Git 操作
连接远程仓库后,文件树工具栏的「更多操作」菜单中会显示 Git 操作选项(仅管理员和编辑者可见)。
如果刚配置git远程仓库地址,需要刷新页面才能看到

分支信息
打开「更多操作」菜单时,系统会自动从 Git 仓库获取最新的分支信息:
- 当前分支:从实际 Git 仓库获取,确保与 AI 对话中创建或切换的分支保持同步
- 本地分支:本地 Git 仓库中的所有分支
- 远程分支:远程仓库中的所有分支
如果远程分支列表为空,系统会提示「无法获取远程分支,可能是 Token 无效或网络问题」,但不会影响其他功能的正常使用。
拉取(Pull)
从远程仓库拉取最新代码到本地:
- 点击「拉取」
- 确认对话框显示当前分支名称和操作说明
- 确认后执行拉取,完成后自动刷新文件树和分支信息
如果存在冲突,操作将失败并提示解决冲突。
推送(Push)
将本地提交推送到远程仓库:
- 点击「推送」
- 确认对话框显示当前分支名称和操作说明
- 确认后执行推送,完成后自动刷新分支信息
推送前请确保已提交所有需要的更改。
同步(Sync)
先拉取远程更改,再推送本地提交,一步完成双向同步:
- 点击「同步」
- 确认对话框显示当前分支名称和操作说明
- 确认后依次执行拉取和推送
- 操作过程中会显示 Toast 加载提示
同步结果有以下几种:
- 同步成功:本地和远程内容已一致
- 已是最新:无需同步,内容已经一致
- 存在冲突:本地和远程有冲突的修改,弹出冲突处理对话框
冲突解决策略
当同步操作检测到冲突时,系统会显示冲突对话框,包含:
- 本地领先的提交数
- 远程领先的提交数
- 冲突文件列表
提供两种解决策略:
| 策略 | 说明 | 适用场景 |
|---|---|---|
| 保留本地 | 以本地修改为准,覆盖远程 | 确定本地版本是正确的 |
| 保留远程 | 以远程版本为准,放弃本地修改 | 希望与远程完全一致 |
分支管理
连接远程仓库后,支持分支切换和管理。
查看分支
在「更多操作」菜单中点击「切换分支」,可以查看:
- 当前所在分支(高亮显示)
- 所有本地分支
- 所有远程分支
切换分支
- 在「更多操作」菜单中点击「切换分支」
- 在分支列表中选择目标分支(本地或远程分支均可)
- 如果有未提交的修改,系统使用默认策略(暂存 Stash)处理
- 切换完成后自动刷新文件树和聊天文件缓存
选择远程分支时,系统会自动创建对应的本地分支。
当前分支同步
当前分支信息从实际 Git 仓库获取,而非数据库记录。这意味着:
- AI 在对话中创建或切换分支后,文件树会自动显示正确的分支
- 无需手动刷新页面即可看到分支变化
- 分支信息在打开「更多操作」菜单时自动更新
自动提交
无论是否连接远程仓库,知识库中的文件操作都会自动创建 Git 提交:
- 保存文件、上传文件、删除文件、重命名/移动文件时自动提交
- 提交信息格式:
chore(ai): 操作描述(可通过环境变量GIT_COMMIT_PREFIX自定义) - 提交作者为执行操作的用户
连接远程仓库后,这些本地提交可以通过同步操作推送到远程。
权限控制
| 角色 | Git 操作权限 |
|---|---|
| 管理员(Admin) | 可执行拉取、推送、同步、切换分支等所有操作 |
| 编辑者(Editor) | 可执行拉取、推送、同步、切换分支等所有操作 |
| 查看者(Viewer) | 不可见 Git 操作菜单 |
注意事项
- 仓库地址仅支持 HTTPS 协议,不支持 SSH
- Token 需要有仓库的读写权限
- 大型仓库首次克隆可能需要较长时间
- 同步操作会自动处理未提交的本地修改(先提交再同步)
- 二进制文件(图片、PDF 等)同样支持同步,但无法进行差异对比
- 系统自动忽略 SSL 证书验证,兼容自签名证书的 Git 服务器
常见问题
Q:连接远程仓库后,本地修改会自动推送吗?
A:不会自动推送。本地的文件操作会自动创建 Git 提交,但需要手动点击「推送」或「同步」才会推送到远程。
Q:同步失败怎么办?
A:常见原因包括:Token 过期或权限不足、网络连接问题、远程仓库地址变更。请检查工作空间设置中的仓库配置。
Q:可以连接私有仓库吗?
A:可以,只要提供的 Token 有对应仓库的访问权限即可。
Q:切换分支后文件树会变化吗?
A:是的,切换分支后文件树会自动刷新,显示目标分支的内容。同时聊天输入框的文件选择器也会更新为新分支的文件列表。
Q:多人同时同步会冲突吗?
A:系统通过操作队列保证同步操作的顺序执行,避免并发冲突。如果远程内容被其他人修改,同步时会弹出冲突对话框,选择解决策略即可。
Q:文件树中看不到 Git 操作菜单(拉取、推送、同步、切换分支等)怎么办?
A:请确认:1)已在工作空间设置的「存储管理」中正确配置了远程仓库地址和访问令牌;2)配置保存后需要刷新页面;3)您的角色需要是管理员或编辑者,查看者无权操作。
Q:AI 在对话中创建了新分支,文件树显示的还是老分支?
A:不会。系统会从实际 Git 仓库获取当前分支,AI 对话中创建或切换的分支会自动同步到文件树显示。打开「更多操作」菜单时会刷新分支信息。
Q:Token 无效或过期了会怎样?
A:系统会友好提示「无法获取远程分支,可能是 Token 无效或网络问题」,不会导致页面崩溃。请前往工作空间设置更新 Token。