如何安裝 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 成功。

安裝brew · script · apt
工作流init · add · apply
存储~/.local/share/chezmoi
安裝init + add新机 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

  1. 1
    macOS(Homebrew)

    brew install chezmoi。验证:which chezmoi 与 chezmoi --version。

  2. 2
    Linux

    Debian/Ubuntu 可用官方安裝脚本:sh -c "$(curl -fsLS get.chezmoi.io)" -- -b $HOME/.local/bin,并把 $HOME/.local/bin 加入 PATH。部分发行版提供包(见 chezmoi.io 安裝页)。

  3. 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            # 若已設定 remote

chezmoi 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. 1
    安裝 chezmoi

    同上文 brew 或 get.chezmoi.io 脚本。

  2. 2
    init 你的源

    chezmoi init https://github.com/YOUR_USER/dotfiles.git。私有儲存庫需已設定 SSH 或 HTTPS 凭据。

  3. 3
    首次 apply

    chezmoi apply -v。加 -n 可先 dry-run:chezmoi apply -nv。确认 diff 后再去掉 -n。

  4. 4
    后续同步

    日常 chezmoi update 拉取并应用;本机改动用 chezmoi re-add 或 edit 后 commit 推送。

与手工 rsync / 裸 Git 对照

方式多机同步权限 / 模板
手工 cp / rsync易漏文件需自己记
home 目录直接 Git可行但易误 commit 秘密无内置模板
chezmoiinit + apply / updateadd、模板、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 源分开管理。

環境對齊後畫一張圖

终端与编辑器設定统一后,服务边界仍適合摊在同一张白板上。见 如何建立空間。

立即開會