作者:pluto 更新时间:2026-04-17
Fossil 不仅仅是版本控制,它是一个集代码、文档、计划于一体的“项目保险箱”。
一、 日常工作流 (The Daily Workflow)
Fossil 的逻辑是“所见即所得”,没有 Git 那些复杂的暂存区概念。
1. 基础开发循环
- 查看状态:随时检查哪些文件被动过。 ```bash fossil status
- 忽略文件:告诉 Fossil 不要管哪些文件。
# 把 node_modules 彻底踢出管理 echo "node_modules/" >> .fossilignore fossil addremove # 应用到仓库 - 提交:写下“说明书”,锁住当前状态。
fossil commit -m "新增用户登录功能" - 推送/拉取:同步到云端保险箱。
# 推送到你的服务器
fossil push http://example.com/repo.fossil
# 从服务器拉取最新变更
fossil pull http://example.com/repo.fossil
- 添加/删除文件:
# 新增
fossil add newfile.txt
# 删除
fossil rm oldfile.txt
- 撤销修改:撤销到上一次提交。 ```bash # 撤销所有未提交的更改 fossil revert --all
# 只撤销某个文件 fossil revert file.txt ```
- 差异对比 ```bash # 查看工作区和上一版本的差异 fossil diff
# 查看某个文件的差异 fossil diff file.txt ```
2. 撤销与恢复
- 回滚本地修改 ```bash # 回滚所有未提交的更改 fossil revert --all
# 只回滚某个文件 fossil revert file.txt ```
- 比较差异 ```bash # 查看工作区和上一版本的差异 fossil diff
# 查看某个文件的差异 fossil diff file.txt ```
- 版本历史 ```bash # 查看提交历史 fossil timeline
# 查看特定文件的提交历史 fossil timeline file.txt ```
- 查看文件内容 ```bash # 查看当前版本的特定文件内容 fossil cat file.txt
# 查看特定版本的特定文件内容 fossil cat file.txt@1 ```
- 查看文件属性
# 查看特定文件的属性 fossil prop file.txt - 撤销提交
# 撤销最近一次提交 fossil undo
3. 分支管理
- 创建分支 ```bash # 创建新分支 fossil branch new feature-branch
# 切换到新分支 fossil checkout feature-branch ```
- 合并分支 ```bash # 切换到目标分支 fossil checkout main
# 合并特性分支 fossil merge feature-branch ```
- 查看分支 ```bash # 查看所有分支 fossil branch list
# 查看当前分支 fossil branch current ```
- 重命名分支
# 重命名当前分支 fossil branch rename main main_v2 - 关闭分支
# 关闭分支 fossil branch close feature-branch
4. 标记与版本
- 创建标记 ```bash # 创建标记 fossil tag add v1.0.0
# 创建带描述的标记 fossil tag add v1.0.0 "版本1.0.0发布" ```
- 查看标记 ```bash # 查看所有标记 fossil tag list
# 查看特定标记的详细信息 fossil tag info v1.0.0 ```
删除标记 ```bash
删除标记
fossil tag remove v1.0.0 ```
二、Fossil 内置 Web UI 高级用法
执行 fossil ui 后,除了看代码,你还应该关注: Admin -> Settings: diff-binary:设置你喜欢的第三方对比工具。
ignore-glob:设置忽略规则(如 *.o,*.obj,node_modules/*)。Tickets: 自定义工单字段。所有的 Bug 记录都会随代码一起备份。 Wiki: 直接在 Web 界面写 Markdown 文档,全团队同步。
三、Serverless 部署实践
Fossil 可以直接通过 HTTP 访问,不需要 Nginx 反向代理。
//开启http服务 fossil http /myrepo.fossil //或者使用 fossil server /myrepo.fossil四、版本合并策略
智能合并(默认)
fossil merge feature/A
尝试自动合并,如果冲突则中止
fossil merge --allow-empty feature/A
强制合并(即使有冲突也合并)
fossil merge --allow-empty --allow-conflict feature/A
五、备份与归档策略
备份当前版本
fossil backup /myrepo.fossil
备份到另一个文件
fossil backup /myrepo.fossil backup.fossil
备份到只读文件
fossil backup /myrepo.fossil readonly.fossil
备份到只读文件并压缩
fossil backup -z /myrepo.fossil readonly.fossil
查看备份文件
fossil ls -L /myrepo.fossil
六、进阶技巧 (Power User Tips)
忽略文件配置 不需要 .gitignore 文件,直接写进仓库配置:
fossil settings ignore-glob "target/*,.idea/*,*.log"查找历史
fossil timeline -n 20 # 查看最近 20 条提交 fossil finfo [file] # 查看具体某个文件的修改史彻底删除误传文件 (Shun)
Fossil 默认不删历史,如果你不小心传了 1GB 的电影或密码,需要: 在 UI 界面找到该 Artifact 的 SHA1 值。 进入 Admin -> Control -> Shunned Artifacts。 填入 SHA1 值并保存。