如何安装 chezmoi 管理 dotfile:init、add 文件与新电脑 apply 同步
用 chezmoi 把 dotfile 纳入 Git 源,新机 init 后 apply 即可同步环境。
换电脑或重装系统后,~/.zshrc、SSH 配置和编辑器设置总要手工拷一遍。chezmoi 用 Git 管理 dotfile 源,在本机 chezmoi add 纳入文件,在新机器上 chezmoi init 加 chezmoi apply 即可还原。本教程覆盖 macOS/Linux 安装、chezmoi init、把现有 dotfile 加入仓库、日常 edit/diff,以及在新电脑上首次 apply,面向 hereink 读者常用的多机开发环境。
检索词是如何安装 chezmoi 管理 dotfile 并在新电脑 apply 同步配置。读完应能安装 chezmoi、初始化源目录、把至少一个配置文件纳入管理,并在另一台机器上 clone 源后 apply 成功。
chezmoi 解决什么问题
可版本化的 dotfile
把 ~/.gitconfig、shell rc、~/.config/nvim 等放进一个 Git 仓库,而不是散落在备份盘或云盘文件夹里。变更可 diff、可回滚,多机保持一致。
模板与机密分离
chezmoi 支持模板(如按 OS 分支)和从 1Password 等读取秘密,避免把 token 明文 commit。入门可先 plain add,再逐步用 chezmoi edit 改源文件。
上游:
github.com/twpayne/chezmoi,文档chezmoi.io。安装后运行chezmoi --version确认。
安装 chezmoi
- 1macOS(Homebrew)
brew install chezmoi。验证:which chezmoi与chezmoi --version。 - 2Linux
Debian/Ubuntu 可用官方安装脚本:
sh -c "$(curl -fsLS get.chezmoi.io)" -- -b $HOME/.local/bin,并把$HOME/.local/bin加入PATH。部分发行版提供包(见 chezmoi.io 安装页)。 - 3首次 init
chezmoi init会在~/.local/share/chezmoi创建源树(空仓库或从远程 clone)。若已有 GitHub dotfiles 仓库:chezmoi init https://github.com/YOUR_USER/dotfiles.git。
把现有文件加入 chezmoi
源目录里的路径相对 home。例如要把当前 ~/.zshrc 纳入管理:
chezmoi add ~/.zshrc
chezmoi cd # 进入源 Git 仓库
git status # 应看到 dot_zshrc 等命名规则下的新文件
git commit -m "Add zshrc"
git push # 若已配置 remotechezmoi add 会复制目标到源并保留权限;之后应通过 chezmoi edit ~/.zshrc 修改(编辑源,再 apply 到 home),而不是只改 home 副本导致漂移。
本机 apply 与日常命令
chezmoi apply # 把源同步到 ~
chezmoi diff # 预览将要发生的变更
chezmoi status # 源与 home 是否一致
chezmoi update # 拉 remote 并 apply(若 init 自 Git)改源文件后先 chezmoi diff 再 chezmoi apply,避免意外覆盖正在用的配置。
在新电脑上还原
- 1安装 chezmoi
同上文 brew 或 get.chezmoi.io 脚本。
- 2init 你的源
chezmoi init https://github.com/YOUR_USER/dotfiles.git。私有仓库需已配置 SSH 或 HTTPS 凭据。 - 3首次 apply
chezmoi apply -v。加-n可先 dry-run:chezmoi apply -nv。确认 diff 后再去掉-n。 - 4后续同步
日常
chezmoi update拉取并应用;本机改动用chezmoi re-add或 edit 后 commit 推送。
与手工 rsync / 裸 Git 对照
| 方式 | 多机同步 | 权限 / 模板 |
|---|---|---|
| 手工 cp / rsync | 易漏文件 | 需自己记 |
| home 目录直接 Git | 可行但易误 commit 秘密 | 无内置模板 |
| chezmoi | init + apply / update | add、模板、secret 集成 |
- 适合
- 多台 Mac/Linux、shell/编辑器/SSH 配置要一致、希望 dotfile 有清晰 Git 历史。
- 不适合
- 只在一台机器、配置极少且从不换机——简单 backup 可能够用。
改了 ~/.zshrc 但 chezmoi status 显示 drift?
你直接改了 home 下的文件。用 chezmoi re-add ~/.zshrc 把变更收进源,或 chezmoi apply 用源覆盖 home(会丢本地未入库改动,先 diff)。
和 GNU stow 有什么区别?
stow 用 symlink 把仓库链到 home;chezmoi 维护独立源树并 apply,更适合模板、跨 OS 和 secret。两者可只选其一。
Windows 能用吗?
chezmoi 支持 Windows;路径与 shell 不同。见 chezmoi.io 的 Windows 文档。WSL 用户常把 Linux home 与 chezmoi 源分开管理。
环境对齐后画一张图
终端与编辑器配置统一后,服务边界仍适合摊在同一张白板上。见 如何创建空间。