mac配置迁移分换机一次性还原(用迁移助理)和多设备长期同步(用git管dotfiles),关键在建立可复用、可追踪、可自动生效的机制,禁用网盘同步配置。

Mac 用户配置迁移和跨设备同步,本质是两件事:一次性的完整环境复刻(换机),和长期的配置一致性维护(多设备)。关键不在“复制文件”,而在建立可复用、可追踪、可自动生效的机制。
换新 Mac:用迁移助理完成一次性全量还原
这是最省心、最接近“开箱即用”的方式,适合刚拿到新设备时使用。它能搬走应用程序、用户账户、文档、桌面设置、网络偏好、甚至 Safari 书签和钥匙串(需 iCloud 同步配合)。
- 新 Mac 首次开机时,“设置助理”会直接引导你选择迁移来源;若已设好系统,就去“应用程序 → 实用工具 → 迁移助理”手动启动
- 旧 Mac 上也打开迁移助理,选“至另一台 Mac”;新 Mac 上选“从另一台 Mac”,然后点选旧设备图标
- 核对六位安全码一致后,勾选要迁移的项目——建议至少选中“用户账户”和“应用程序”,其他按需取舍
- 无线迁移方便但慢;用雷雳或以太网线直连,速度能快数倍,尤其适合含大量照片、视频或开发环境的用户
日常多设备:用 Git 管理 dotfiles 实现精准同步
迁移助理解决不了后续更新问题。真正让多台 Mac 始终保持一致的,是把 shell 配置(.zshrc、.p10k.zsh、.gitconfig 等)当作代码来管理。
- 新建 ~/.dotfiles 目录,把现有配置文件移进去,再用 ln -s 创建符号链接映射回原路径
- 在 ~/.dotfiles 里初始化 Git 仓库,提交首次版本,推送到 GitHub 或 GitLab 私有库
- 新设备上只需 git clone 仓库,再运行一个简单的 bootstrap.sh 脚本(内容就是几行 ln -s 命令),就能立刻获得完全相同的终端环境
- 以后任何修改,都必须走 git add → commit → push,另一台设备 git pull 即可同步,不会遗漏也不会冲突
网络代理不靠猜:让终端自动响应系统设置
手动写死 HTTP_PROXY 在多设备间极易失效,因为 macOS 的代理是按 Wi-Fi 名称或接口单独配置的,且终端默认不读取图形界面里的设置。
- 装 zsh-osx-autoproxy(
brew install zsh-osx-autoproxy),并在 .zshrc 末尾 source 它的插件 - 它会实时调用 scutil --proxy,把当前网络的代理地址、例外列表(NO_PROXY)自动转成环境变量
- 这个逻辑本身也要纳入 Git 管理——也就是说,.zshrc 里这行 source 命令,和其他配置一样,随 dotfiles 一起同步到所有设备
- 验证很简单:连上公司 Wi-Fi 后执行 echo $HTTP_PROXY,再切到手机热点再执行一次,值应随之变化
避坑提醒:别用网盘直接同步配置目录
iCloud Drive 或 Dropbox 看似方便,但对 dotfiles 是灾难性的。
- 符号链接在网盘里会变成普通文件或损坏,导致终端找不到 .zshrc
- 权限信息(如可执行位)可能丢失,比如 bootstrap.sh 变成不可运行
- 多设备同时修改同一文件,网盘无法处理 Git 那样的合并逻辑,容易覆盖或冲突
- 正确做法是:只用 Git 同步源码,用软链保证系统生效;网盘只用来同步文档、照片等非配置类数据











