版本控制

了解知识库的 Git 版本控制功能

版本控制

Knodo 知识库基于 Git 实现版本控制,自动记录所有更改历史。本文档介绍版本控制的使用方法。

变更面板

工作空间侧边栏的“变更”面板用于查看当前 Git 仓库的本地变更、提交历史和分支对比。

变更面板

面板顶部展示当前仓库和分支,下面提供三个常用视图:

  • 变更:查看工作区文件变更、未暂存数量和文件状态。
  • 历史:查看当前仓库的提交历史。
  • 分支对比:对比分支之间的文件差异。

变更列表包含:

  • 文件状态标识:M(修改/黄色)、A(新增/绿色)、D(删除/红色)、R(重命名/蓝色)、U(未跟踪/绿色)、C(冲突/橙色)
  • 点击文件名在中间面板打开 Diff 视图
  • 刷新按钮手动更新变更列表
  • 切换窗口焦点时自动刷新

多仓库切换

对于历史项目拆分为多个 Git 仓库的工作空间,可以在变更面板顶部切换不同仓库,查看对应仓库的本地 Git 信息。

仓库选择

仓库选择下拉包含:

  • 搜索框:支持按仓库名称或相对路径过滤。
  • 刷新按钮:重新扫描工作空间内的本地 Git 仓库。
  • 主仓库:工作空间根目录仓库,只展示仓库名称,不展示 . 路径。
  • 已配置子仓库:来自存储管理中的子仓库配置,展示目录名和相对路径。
  • 扫描到的仓库:工作空间目录中动态识别出的本地 Git 仓库,展示目录名和相对路径。

动态扫描用于发现配置之外的本地 Git 仓库,默认识别工作空间 4 层目录内的 Git 仓库。扫描结果会在仓库选择器中以“扫描到”的来源标识展示,点击刷新按钮可强制重新扫描。

选择不同仓库后,变更列表、Diff、提交历史、分支列表和分支对比都会按选中的仓库路径读取本地 Git 信息。子仓库和扫描到的仓库只展示本地 Git 信息,不显示平台托管的远程同步/推送入口。

Diff 视图

点击变更文件后,中间面板以 Tab 形式展示该文件的 Diff:

  • 并排模式(Side-by-Side):左侧旧版本,右侧新版本
  • 内联模式(Inline):上下排列,删除行红色背景,新增行绿色背景
  • 行号显示,支持长行自动换行
  • 多仓库场景下,Diff Tab 会带上仓库路径上下文,避免不同仓库中的同名文件互相覆盖

Git 基础

什么是版本控制?

版本控制是一种记录文件更改历史的系统,让您可以:

  • 查看谁在何时修改了什么
  • 回退到之前的版本
  • 比较不同版本的差异
  • 恢复误删的文件

Knodo 中的 Git

每个工作空间的知识库都是一个 Git 仓库:

  • 自动提交:每次保存自动创建提交
  • 自动记录:记录修改者和时间
  • 透明操作:无需手动执行 Git 命令

自动版本管理

自动提交

Knodo 会在以下操作时自动创建 Git 提交:

  • 保存文件时
  • 上传文件时
  • 删除文件时
  • 重命名/移动文件时
  • 批量导入文件时

提交信息格式

系统自动生成的提交信息格式:

chore(ai): 更新 docs/readme.md chore(ai): 上传 images/logo.png chore(ai): 删除 old-file.txt chore(ai): 重命名 a.md 为 b.md

提交前缀可通过环境变量 GIT_COMMIT_PREFIX 自定义,默认为 chore(ai):

提交作者信息

每次提交会记录操作用户的信息:

  • 作者名称:用户的显示名称
  • 作者邮箱:用户的邮箱地址

工作空间下载

您可以将整个知识库下载到本地:

  1. 进入工作空间
  2. 点击右上角的下载按钮
  3. 系统会将整个知识库打包为 ZIP 文件
  4. 下载到本地后解压即可获得完整的 Git 仓库

下载的 ZIP 包含:

  • 所有文件和目录结构
  • 完整的 Git 历史记录(.git 目录)
  • 可直接使用 Git 命令操作

技术细节

存储架构

  • 存储方式:本地 Git 仓库
  • 增量存储:只存储变更部分,节省空间
  • 服务端托管:无需本地安装 Git

并发安全

系统使用 Git 操作队列确保并发安全:

  • 多用户同时操作时按顺序执行
  • 避免 Git 锁冲突
  • 保证数据一致性

资源限制

  • 单个文件大小限制:根据套餐不同
  • 存储空间限制:根据套餐配额
  • Git 历史保留:永久保留

最佳实践

1. 合理组织文件

  • 使用清晰的目录结构
  • 文件命名规范统一
  • 避免过深的目录层级

2. 适度更新频率

  • 相关更改一起保存
  • 避免过于频繁的小修改
  • 完成一个逻辑单元后再保存

3. 定期下载备份

  • 重要知识库定期下载备份
  • 保留本地副本以防万一

常见问题

Q:每次保存都会创建新版本吗?

A:是的,每次文件保存都会创建一个新的 Git 提交,记录变更内容、时间和操作者。

Q:历史记录会永久保存吗?

A:是的,Git 历史记录会永久保留在知识库中。

Q:可以手动创建提交吗?

A:目前不支持手动创建提交,所有提交由系统自动生成。

Q:多人同时编辑会冲突吗?

A:系统通过操作队列保证顺序执行,避免并发冲突。

Q:下载的知识库可以用 Git 操作吗?

A:可以。下载的 ZIP 包含完整的 .git 目录,解压后可使用任何 Git 命令进行操作。

Q:二进制文件支持版本控制吗?

A:支持,但二进制文件无法进行差异对比,只能整体回滚。

相关文档