SuperAPI AI 工具集

chezmoi-workflows

部署与运维

查看项目

更新于 10-15 16:36

技能介绍

用途

chezmoi-workflows 是一个围绕 chezmoi 的技能,用于 dotfiles(配置文件)的备份与同步。当需要把 dotfiles 备份到 Git 仓库、在多台机器之间同步配置文件、追踪 shell 配置或编辑器设置的改动、使用 chezmoi 管理模板化配置,以及排查源目录与目标目录之间的配置漂移时,可以使用该技能。

架构

该技能基于 chezmoi 的三层结构:

  • Source:由 chezmoi source-path 指定的目录,存放 dotfile 模板的 Git 仓库。
  • Target:~/,即部署文件所在的主目录。
  • Remote:GitHub(建议使用私有仓库),用于跨机器同步与备份。
  • Config:~/.config/chezmoi/chezmoi.toml,存放用户偏好与设置。

主要能力与使用方式

技能按操作场景组织命令,主要包括:

  1. 状态检查:使用 chezmoi source-path、chezmoi git -- remote -v、chezmoi status、chezmoi managed | wc -l 查看源目录、远端、漂移情况和被追踪文件数量。
  2. 追踪文件改动:编辑配置后,用 chezmoi status 确认、chezmoi diff 审查、chezmoi add 加入源并(若已配置)自动提交,再 chezmoi git -- push 推送。
  3. 追踪新文件:用 chezmoi add 添加,用 chezmoi managed 验证,再推送。
  4. 从远端同步:chezmoi update 一条命令完成拉取与应用,再用 chezmoi verify 和 chezmoi status 校验。
  5. 推送全部改动:chezmoi status 审查、chezmoi re-add 重新添加全部受管文件、chezmoi git -- push 推送。
  6. 首次设置:用 brew install chezmoi 安装;可 chezmoi init 创建空源并添加首批文件后用 gh repo create 建私有仓库;也可 chezmoi init git@... 克隆已有仓库后 chezmoi apply。
  7. 配置源目录:移动源目录并在 chezmoi.toml 中设置 sourceDir。
  8. 切换远端:用 chezmoi git -- remote set-url 更换仓库并推送。
  9. 解决合并冲突:用 chezmoi git -- status/diff 定位冲突,手工编辑源目录中的文件后暂存、提交、chezmoi apply 并推送。
  10. 校验:chezmoi verify(退出码 0 表示全部匹配)、chezmoi diff(为空表示无漂移)、chezmoi managed、chezmoi git -- log。
  11. 取消追踪:chezmoi forget --force <path> 移除追踪但保留主目录中的文件,适用于机器专属配置、含密钥的文件或误加文件。
  12. 模板管理:用 chezmoi add --template 创建 .tmpl,用 chezmoi edit 编辑,用 chezmoi diff 预览,用 chezmoi apply 渲染应用。支持按操作系统(.chezmoi.os)、架构(.chezmoi.arch)、chezmoi.toml 的 [data] 自定义变量,以及 1Password(onepasswordRead)生成配置。可用 chezmoi execute-template 和 chezmoi cat 验证渲染结果。
  13. 安全更新:先 chezmoi git -- pull 只拉取,再 chezmoi diff 审查,再 chezmoi apply --dry-run --verbose,确认后才 chezmoi apply。适用于从另一台机器拉取改动或长时间未同步的情形。
  14. 诊断:chezmoi doctor 检查 config-file、source-dir、git-command、edit-command、1password、age/gpg 等项,可用 chezmoi doctor | grep -v "^ok" 只看告警与错误。

适用场景

  • 跨机器同步 shell、编辑器等配置。
  • 备份 dotfiles 到私有 Git 仓库。
  • 通过模板为不同系统、架构或账号生成差异化配置。
  • 排查并解决源目录与主目录之间的漂移或合并冲突。
  • 管理含密钥或机器专属内容的配置文件(先取消追踪或改用模板)。

限制

使用前需安装 chezmoi 与 Git;模板中使用 1Password 需安装 op CLI,加密文件需 age/gpg。技能未提供具体的安装版本要求、各平台差异细节、收费或价格信息。若 chezmoi 未安装会提示 not found,未初始化时源路径为空,远端未设置需手动添加 origin。