AIR Assets Sync 2.0
🎯 这是什么AIR Assets Sync 2.0 是一个 VS Code 扩展,用于在多个工作区之间同步 AI 开发资产(prompts、规范文档、模板等)。 核心特性:
为什么选择 V2?
🚀 快速开始1. 安装扩展在 VS Code 扩展市场搜索 "AIR Assets Sync" 并安装。 2. 配置资产仓库打开 VS Code 设置(
3. 安装资产
完成!现在你的工作区已经通过 symlink 连接到共享 cache。 4. 开始使用安装完成后,你可以:
📖 核心概念Symlink 架构
优势:
Git Native 状态追踪V2 不再使用自定义状态管理,直接使用 Git 追踪文件状态:
好处:
🎨 功能详解差异视图显示工作区与远程仓库的差异:
操作:
暂存视图管理待提交的更改:
提交流程:
忽略机制三种忽略方式,适应不同场景: 1. 本地忽略(
|
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
remoteUrl |
string | - | 远程仓库地址(必填) |
branch |
string | main |
分支名称 |
mappings |
object | {} |
资产映射(远程路径 → 本地路径) |
cacheDir |
string | 系统默认 | 缓存目录路径 |
defaultIgnorePatterns |
array | [] |
默认忽略模式 |
skillsSync.autoSync |
boolean | true |
启用自动同步(IDE 启动时) |
skillsSync.sourcePath |
string | .agents/skills |
Skills 源路径 |
缓存目录位置
- Windows:
%LOCALAPPDATA%\smart-assets-sync\ - macOS:
~/Library/Caches/smart-assets-sync/ - Linux:
~/.cache/smart-assets-sync/
🔧 常用命令
| 命令 | 说明 |
|---|---|
smartAssets.install |
首次安装:clone cache + 创建 symlink |
smartAssets.refresh |
刷新:git pull + 更新差异视图 |
smartAssets.update |
更新:git pull + 覆盖本地更改 |
smartAssets.commit |
提交:暂存 → commit → push |
smartAssets.discard |
放弃:恢复到远程版本 |
smartAssets.syncSkillsToIDE |
Skills 同步到当前 IDE |
smartAssets.uninstall |
卸载:删除 symlink(保留 cache) |
💡 使用技巧
多工作区协作
- 在工作区 A 修改
.agents/prompts/example.md - 保存后,工作区 B 自动看到更改(因为都指向同一个 cache)
- 在工作区 B 中暂存并提交
- 推送到远程,团队成员都能看到
查看差异
双击差异文件,会打开 VS Code 的 diff 视图:
左侧:远程版本(只读)
右侧:本地版本(可编辑)
冲突解决
当 rebase 遇到冲突时:
- 扩展会显示冲突文件列表
- 打开冲突文件,手动解决冲突
- 保存文件后,系统自动检测
- 点击 "继续" 完成 rebase
忽略文件夹
右键点击文件夹 → "添加到忽略":
- 已追踪的文件 → 使用 skip-worktree
- 未追踪的文件 → 添加忽略模式
- 自动添加
folder/**防止新文件被追踪
🚨 常见问题
基础概念
Q: 为什么使用 Symlink?
A: Symlink 让多个工作区共享同一份文件,修改一处自动同步到所有工作区。同时,Git 可以直接追踪 symlink 指向的文件,无需自定义状态管理。
Q: Symlink 在 Windows 上工作吗?
A: 是的!扩展会自动检测文件类型并创建正确的 symlink:
- 文件 → 使用
file类型 - 目录 → 使用
dir类型 - Windows 10+ 开发者模式下无需管理员权限
使用问题
Q: 如何查看 cache 目录?
A: 点击资产列表中的 "打开缓存目录" 按钮,或使用命令 smartAssets.openCacheDir。
Q: 卸载会删除文件吗?
A: 卸载只删除 symlink,不会删除 cache 目录中的文件。如果需要完全清理,请手动删除 cache 目录。
Git 相关
Q: 支持哪些 Git 协议?
A: 支持 HTTPS 和 SSH。首次使用 HTTPS 时会提示配置 Token 或用户名密码。
Q: 如何处理换行符差异?
A: 扩展已配置 Git 统一使用 LF 换行符(core.autocrlf=input),不会因为换行符导致误报。
Q: 多人同时修改同一文件怎么办?
A: 使用 Git 的标准冲突解决流程。提交时会自动 rebase,如果有冲突会提示手动解决。
版本相关
Q: 如何回退到 V1?
A: 不建议回退。V2 是完全重写的版本,配置和数据结构都不兼容。如果遇到问题,请提交 Issue。
📚 进阶主题
自定义 Git 配置
扩展会在 cache 目录中自动配置 Git:
# 处理换行符
git config core.autocrlf input
# 忽略文件名大小写
git config core.ignorecase true
# 禁用安全换行符检查
git config core.safecrlf false
# 忽略文件权限变化
git config core.filemode false
如需自定义,可以直接在 cache 目录中运行 Git 命令。
集成 CI/CD
可以在 CI/CD 中使用扩展的 cache 目录:
# GitHub Actions 示例
- name: Sync AI Assets
run: |
git clone https://github.com/your-org/ai-assets.git ~/.cache/smart-assets-sync
ln -s ~/.cache/smart-assets-sync/.agents .agents
团队协作最佳实践
- 统一配置:在团队文档中说明推荐的
mappings配置 - 提交规范:使用清晰的提交信息,如 "feat: 新增 prompt 模板"
- 定期同步:每天开始工作前先 refresh,确保使用最新版本
- 冲突处理:遇到冲突及时沟通,避免覆盖他人修改
🔗 相关资源
- 更新日志:CHANGELOG.md - V2 重大变更和迁移指南
🤝 贡献
欢迎提交 Issue 和 Pull Request!
开发环境:
# 安装依赖
npm install
# 编译
npm run compile
# 监听模式
npm run watch
# 打包
npm run package
调试:
- 在 VS Code 中打开项目
- 按 F5 启动扩展开发主机
- 在新窗口中测试扩展功能
📄 许可证
MIT License - 详见 LICENSE
从 V1 升级? 查看 CHANGELOG.md 了解 V2 的重大变更和迁移指南。