macos开发环境备份分层实施:time machine兜底系统状态,brewfile+mas list管理软件清单,rsync快照备份用户配置,专用工具归档编辑器/ide设置。
macos 下开发环境的版本备份与归档,核心在于分层处理:系统级靠 time machine,用户级配置靠终端脚本+版本控制,工具链靠声明式清单(如 brewfile),编辑器和 ide 设置则单独导出。不追求“一键全包”,而是让每类资产可追溯、可验证、可选择性恢复。
用 Time Machine 做底层兜底
这是唯一能完整保留开发环境运行状态的方式——包括已签名的 CLI 工具、GUI 应用的授权状态、钥匙串凭据、TCC 权限设置、LaunchAgents 启动项、甚至 Docker Desktop 的 VM 状态。它不关心你装了什么,只忠实记录磁盘快照。
- 外置盘建议用 APFS 格式,容量至少为当前 Mac 使用量的 1.5 倍
- 在 Time Machine 选项中排除
~/Library/Caches、~/Downloads、~/Library/Developer/Xcode/DerivedData等临时目录,节省空间并加快备份速度 - 每周至少触发一次手动备份:
sudo tmutil startbackup
用 Brewfile + mas list 管理软件清单
Homebrew 和 Mac App Store 安装的工具,是开发环境最易复现的部分。关键不是备份二进制,而是备份“安装意图”。
- 生成可执行的安装清单:
brew bundle dump --file=Brewfile - 导出 MAS 应用列表:
mas list > mas-installed.txt(需先mas signin) - 把这两个文件纳入 Git 仓库,每次新增工具后提交——这就是你的“环境变更日志”
- 恢复时只需:
brew bundle install+mas install $(cat mas-installed.txt | awk '{print $1}')
用 rsync + 时间戳快照备份用户配置
Shell 配置、编辑器设置、终端主题、Git 凭据等,都藏在 ~/Library/Preferences、~/.zshrc、~/.config/ 等路径下。它们体积小、变化频、需版本化。
- 创建快照目录:
mkdir -p ~/Backups/config-$(date +%Y%m%d-%H%M%S) - 复制关键路径(保留符号链接和权限):
rsync -avh --delete ~/.zshrc ~/.gitconfig ~/Library/Preferences/com.apple.Terminal.plist ~/Library/Preferences/com.googlecode.iterm2.plist ~/Backups/config-$(date +%Y%m%d-%H%M%S)/ - 配合
--link-dest实现硬链接去重,多份快照仅存差异文件 - 用 launchd 每日自动执行,快照自动带时间戳,支持任意时刻回溯单个文件
用专用工具归档编辑器与 IDE 状态
VS Code、JetBrains 全家桶、Sublime Text 等不靠 plist 存配置,而是用扩展管理器、Settings Sync 或本地 JSON 文件。直接备份工作区元数据更可靠。
- VS Code:启用 Settings Sync(GitHub 登录),或手动导出:
code --list-extensions > extensions.txt,再备份~/Library/Application Support/Code/User/settings.json - IntelliJ 系列:使用
File → Manage IDE Settings → Export Settings,生成 zip 归档 - Sublime Text:整个
~/Library/Application Support/Sublime Text/Packages/User/目录就是你的配置主体











