远程知识库(Git)

将工作空间知识库与远程 Git 仓库连接,实现内容同步和分支管理

远程知识库(Git)

工作空间的知识库可以连接到远程 Git 仓库(如 GitHub、GitLab、Gitee 等),实现内容的双向同步。这对于需要与外部代码仓库或文档仓库保持一致的团队尤其有用。

适用场景

场景示例
代码仓库同步将项目代码仓库连接到工作空间,AI 助手可直接读取和分析代码
文档仓库协作团队在 Git 仓库中维护文档,工作空间自动同步最新内容
多端编辑本地用 IDE 编辑,工作空间中 AI 助手同步使用

连接远程仓库

初始化模式

连接远程仓库时,支持两种初始化模式:

模式说明适用场景
Clone(克隆远程)从远程仓库克隆内容到工作空间,清空已有数据远程仓库已有内容,需要拉取到工作空间
Push(推送本地)在远程 Git 平台创建新仓库,将本地内容推送上去本地已有内容,需要推送到新的远程仓库

选择 Clone 模式时:

  1. 输入远程仓库地址和访问令牌
  2. 可选择克隆的分支(默认为主分支)
  3. 需二次确认(输入工作空间名称)以防止误操作
  4. 克隆完成后自动刷新文件树

克隆仓库

选择 Push 模式时:

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

新建仓库

保存后也可以进一步修改

  • 重新克隆
  • 或者将当前空间推送到(创建)新的git项目 修改配置

认证方式

目前支持 HTTPS + Token 认证:

平台Token 获取方式
GitHubSettings → Developer settings → Personal access tokens
GitLabUser Settings → Access Tokens
Gitee设置 → 私人令牌

Token 会加密存储,不会以明文形式保存或传输。

pat

Git 操作

连接远程仓库后,文件树工具栏的「更多操作」菜单中会显示 Git 操作选项(仅管理员和编辑者可见)。

如果刚配置git远程仓库地址,需要刷新页面才能看到

Git 操作

分支信息

打开「更多操作」菜单时,系统会自动从 Git 仓库获取最新的分支信息:

  • 当前分支:从实际 Git 仓库获取,确保与 AI 对话中创建或切换的分支保持同步
  • 本地分支:本地 Git 仓库中的所有分支
  • 远程分支:远程仓库中的所有分支

如果远程分支列表为空,系统会提示「无法获取远程分支,可能是 Token 无效或网络问题」,但不会影响其他功能的正常使用。

拉取(Pull)

从远程仓库拉取最新代码到本地:

  1. 点击「拉取」
  2. 确认对话框显示当前分支名称和操作说明
  3. 确认后执行拉取,完成后自动刷新文件树和分支信息

如果存在冲突,操作将失败并提示解决冲突。

推送(Push)

将本地提交推送到远程仓库:

  1. 点击「推送」
  2. 确认对话框显示当前分支名称和操作说明
  3. 确认后执行推送,完成后自动刷新分支信息

推送前请确保已提交所有需要的更改。

同步(Sync)

先拉取远程更改,再推送本地提交,一步完成双向同步:

  1. 点击「同步」
  2. 确认对话框显示当前分支名称和操作说明
  3. 确认后依次执行拉取和推送
  4. 操作过程中会显示 Toast 加载提示

同步结果有以下几种:

  • 同步成功:本地和远程内容已一致
  • 已是最新:无需同步,内容已经一致
  • 存在冲突:本地和远程有冲突的修改,弹出冲突处理对话框

冲突解决策略

当同步操作检测到冲突时,系统会显示冲突对话框,包含:

  • 本地领先的提交数
  • 远程领先的提交数
  • 冲突文件列表

提供两种解决策略:

策略说明适用场景
保留本地以本地修改为准,覆盖远程确定本地版本是正确的
保留远程以远程版本为准,放弃本地修改希望与远程完全一致

分支管理

连接远程仓库后,支持分支切换和管理。

查看分支

在「更多操作」菜单中点击「切换分支」,可以查看:

  • 当前所在分支(高亮显示)
  • 所有本地分支
  • 所有远程分支

切换分支

  1. 在「更多操作」菜单中点击「切换分支」
  2. 在分支列表中选择目标分支(本地或远程分支均可)
  3. 如果有未提交的修改,系统使用默认策略(暂存 Stash)处理
  4. 切换完成后自动刷新文件树和聊天文件缓存

选择远程分支时,系统会自动创建对应的本地分支。

当前分支同步

当前分支信息从实际 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。

相关文档

远程知识库(Git) | Knodo 文档