☰
2026 Mac开发环境配置:Homebrew安装换源与Git配置全攻略
2026/10/7 11:03:47 网站建设 项目流程

2026 年再拿 Mac 当主力开发机,其实比前几年省心不少:Apple Silicon 稳定了,默认终端就是 zsh,Homebrew 对 M 系列芯片也支持得很成熟。但这不意味着你开箱就能顺利把 Homebrew 和 Git 配好。我前几天刚帮朋友从零配完一台新 Mac,光 Homebrew 安装就卡了三次,后面换源、Git 配置又折腾了小半天。这篇就把我实际跑通的完整流程写下来,包含每一步的原因、命令、以及装上之后最容易踩的坑,给同样在配环境的你当参考。

1. 2026 年给 Mac 配开发环境,为什么绕不开 Homebrew

1.1 Homebrew 相当于 macOS 的“软件管家”

用过 Ubuntu 的朋友一定熟悉 apt,用过 CentOS 的知道 yum,而 macOS 官方并没有一个统一管理命令行的包管理器。Homebrew 就是社区里事实标准的那一个。它解决的核心问题是:你想装wget、jq、python@3.12、nginx这类工具时,不需要去官网一个个下载 dmg、pkg,也不需要手动配 PATH、管理依赖关系,一条brew install就能搞定。更重要的是,它会把软件装到自己的目录里,卸载的时候基本不残留文件,这对喜欢折腾环境的人来说非常友好。

所以我的建议是,新 Mac 配环境的第一件事,就是把 Homebrew 装好。因为后续安装 Git、Node.js、Python、MySQL 等工具时,你会发现 90% 的情况都会回到brew install这条命令上来。地基打稳了,后面才顺。

1.2 Apple Silicon 和 Intel Mac 的安装路径不一样,先确认再说

这是新手最容易忽略的点。2026 年主流自然是 Apple Silicon(M 系列芯片),但很多老款 Intel Mac 还在服役。Homebrew 在两个平台上的安装路径不同:

芯片类型Homebrew 默认安装路径验证命令
Apple Silicon/opt/homebrewuname -m输出arm64
Intel/usr/localuname -m输出x86_64

后面所有涉及路径的地方,都要先按自己的芯片类型替换,别直接复制粘贴。最简单的方式,是在终端里先跑一下uname -m,确认是arm64还是x86_64,再决定用哪套配置。

1.3 2026 年的新机初始化流程大致是这样

如果只考虑命令行开发环境,我会把整个流程分成四段:安装命令行工具 → 安装 Homebrew → 换源 → 配置 Git。每一步都有明确的验证方式,所以不会出现“好像装了但又不知道成没成功”的焦虑。下面我会按实际操作的顺序,一段一段讲。

2. 装 Homebrew 前,先把这三件事准备好

2.1 安装 Command Line Tools:Homebrew 的编译依赖

Homebrew 装很多软件时,都需要调用系统的编译器工具链。macOS 上这套工具统称 Command Line Tools(CLT),包括clang、make、git等。虽然 Homebrew 安装脚本会在中途提示你装,但提前装好能避免不少麻烦。

打开终端,执行:

xcode-select --install

然后会弹出一个图形界面,确认安装即可。这个过程可能要等几分钟。如果系统提示“already installed”,说明你已经装过。验证方法:

xcode-select -p

如果输出了类似/Library/Developer/CommandLineTools的路径,说明没问题。

2.2 确认你的默认 shell 是 zsh,以及配置文件该写到哪里

从 macOS Catalina 开始,系统的默认 shell 就是 zsh。你不需要改什么,但要明白一个区别:~/.zshrc和~/.zprofile都会被加载,但时机不同。简单理解,~/.zprofile是在登录 shell 时加载,适合放环境变量和初始化命令;~/.zshrc是每次打开新的交互式终端时加载,适合放别名、函数这类需要实时生效的设置。

Homebrew 官方建议把brew shellenv这行写到~/.zprofile,因为它本质上是环境变量,不需要每次切换目录都重新加载。后面换源的环境变量,我也会统一放到~/.zprofile里。

2.3 关于网络环境:为什么官方安装脚本有时会卡住

很多人卡在 Homebrew 安装,问题往往不在电脑,而是官方源在国内的访问不稳定。Homebrew 本体仓库、Formula 索引、以及预编译好的二进制包都在 GitHub 上,大陆地区访问这些地址经常出现超时或速度极慢。

针对这种情况,现在的标准做法并不是找一个“万能破解安装包”,而是把 Homebrew 的仓库地址和下载地址,替换成国内的镜像源。这个操作本身不复杂,关键在于你要知道换源换的到底是哪几个地址,后面会有专门一节讲清楚。这里只是给你打个预防针:如果安装脚本在下载阶段卡了很久,不要慌,先 Ctrl+C 取消,再用镜像仓库重新跑。

2.4 给 shell 配置文件留个备份

这一步很多教程不提,但我每次配环境前都会做。因为安装脚本或你手滑,有可能会改坏~/.zshrc或~/.zprofile。备份成本极低,恢复成本极高:

cp ~/.zprofile ~/.zprofile.bak 2>/dev/null; cp ~/.zshrc ~/.zshrc.bak 2>/dev/null

如果文件不存在,命令会报个错,但也不影响。后续配置出问题,直接mv回来就行。

3. 保姆级安装:从官方脚本到镜像兜底,一次跑通

3.1 理想情况:官方脚本一把过

如果你访问 GitHub 比较顺畅,直接在终端粘贴这条命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

脚本会先检查系统环境,然后开始下载 Homebrew。中间会提示你输入密码,这是为了创建/opt/homebrew目录并设置权限,属于正常现象。整个安装过程大概几分钟到十几分钟,取决于网络速度。

装完后,Apple Silicon 的机器需要执行:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)"

Intel Mac 则把路径换成/usr/local/bin/brew。这一步的目的,是让终端能直接找到brew命令。不执行的话,你会在输入brew时收到command not found。

3.2 现实情况:安装脚本卡在下载阶段怎么办

我自己遇到的情况,大多是卡在Downloading Command Line Tools或者Cloning into /opt/homebrew这两步。前者说明系统工具链没装齐,回到上面先装 CLT;后者说明仓库下载不顺利,可以 Ctrl+C 中断,然后这样跑:

export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git" export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

这里的关键是:官方安装脚本支持通过环境变量覆盖仓库地址,我们只是把远程仓库指到了清华镜像。脚本本身还是官方的,不会执行第三方代码,安全性有保障。执行完成后,记得把这三四个export写进~/.zprofile,否则下次新终端打开后它们就失效了,Homebrew 还会默认回源。

如果连raw.githubusercontent.com这个脚本地址都访问不了,可以先把脚本下载到本地再跑:

curl -fsSL -o /tmp/install.sh https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh

然后用sh /tmp/install.sh执行本地文件。实在不行,还有一种手动方式:直接从镜像站 clone Homebrew 本体仓库到目标目录。Apple Silicon 执行:

git clone https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git /opt/homebrew

这种方式不执行官方安装脚本,所以不会帮你自动设置 PATH,需要自己手动加。如果你对命令行已经比较熟悉,可以用它兜底;新手我不建议,因为后面补环境变量容易漏。

3.3 安装完成后的验证:不只看版本号

执行完安装流程,别急着开心,先验证三件事:

brew --version brew config brew doctor

brew --version看版本,brew config能看当前生效的源配置,brew doctor会检查环境是否健康。如果你看到一堆“Warning”也不用慌,多数是目录权限或旧版本残留的提示,按提示处理即可。举个例子,如果提示/opt/homebrew权限不对,可以用sudo chown -R $(whoami) /opt/homebrew修正。

3.4 安装过程中的其他坑

  • 镜像源变量设置后,如果安装脚本继续走 GitHub,检查是否在当前终端生效。export只对当前终端进程有效,开了新窗口就没了。
  • 安装过程中断掉再重跑,通常没问题,但个别时候会残留半成品。实在起不来,就删掉/opt/homebrew重新来:sudo rm -rf /opt/homebrew,然后重新执行安装脚本。
  • 不要把brew装到需要sudo才能操作的目录,也不要为了省事直接用 root 用户跑安装脚本。Homebrew 的权限模型就是当前用户管理自己的目录,强行用 root 反而会留下一堆权限问题。

4. 换源这件事,本质上是换四个地址

4.1 先搞懂 Homebrew 的存储结构,换源才不会瞎换

很多人看到网上教程说“换源”,就只知道复制几条命令。我建议你花两分钟理解 Homebrew 几个目录和变量的区别,后面遇到问题才能自己排查。

名称作用默认地址
brew 本体仓库Homebrew 程序代码本身,位于$(brew --repo)GitHub Homebrew/brew
homebrew-core旧版本的 Formula 索引(新版默认走 API)GitHub Homebrew/homebrew-core
homebrew-cask图形化软件的下载清单GitHub Homebrew/homebrew-cask
Bottles预编译好的二进制包,安装时直接下载ghcr.io
API新版 Homebrew 获取 Formula 索引的接口ghcr.io 或 GitHub

2024 年之后,Homebrew 官方已经默认不再把 homebrew-core 仓库完整 clone 到本地,而是通过 JSON API 获取索引。所以很多早期教程里让你cd "$(brew --repo homebrew/core)"然后换源的操作,在新版本里已经不是必须的。你真正需要关心的是:本体仓库、API 域名、Bottle 域名这三个地方。

4.2 把 Homebrew 本体仓库切到国内镜像

本体仓库的切换方式很直接,改 git remote 地址:

cd "$(brew --repo)" git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

如果你更习惯中科大源,把地址换成:

git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

两个源我都用过,稳定性上没感觉出明显差异。清华源的更新频率和维护水平都很好,可以作为首选项。

4.3 配置 API 域和 Bottle 域,这才是下载提速的关键

如果你只是为了“能装上 Homebrew”,那换不换 API 和 Bottle 无所谓。但只要之后你brew install任何软件,速度差异会非常明显。因为真正的大体积下载,发生在软件二进制包(Bottle)阶段。

在~/.zprofile里加上这几行:

export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"

保存后执行source ~/.zprofile,然后验证:

brew config | grep -E 'HOMEBREW_(API|BOTTLE)_DOMAIN'

看到输出的是清华域名,就算配置成功。之后安装软件,比如brew install wget,下载速度通常能到几 MB/s 甚至更高。中科大的对应地址是https://mirrors.ustc.edu.cn/homebrew-bottles和https://mirrors.ustc.edu.cn/homebrew-bottles/api,用法完全一样。

4.4 为什么我不推荐第三方“一键安装脚本”

国内网上流传很广的 Homebrew 安装脚本,确实能做到一键安装+一键换源,看起来省事。但我个人强烈不推荐在重要机器上用。原因是这类脚本属于第三方维护,你无法在短时间内审查它到底执行了什么代码,包括会不会写入额外配置、会不会加载计划任务、会不会修改 shell 启动文件。配开发环境这件事,安全底线的优先级高于“少敲几条命令”。用官方脚本,配上自己写的两个export,本身就是十分钟的事,没必要牺牲可控性。

4.5 换源后的验证、回退与常见问题

换完源,执行一次完整的流程测试:

brew update --force --quiet brew install wget

如果brew update报错,多半是 git remote 没设置成功。可以手动看当前源:

cd "$(brew --repo)" git remote -v

如果 URL 还是 GitHub 官方地址,重新执行一遍git remote set-url即可。另外,如果你之前手动 tap 过homebrew/cask,可能也需要检查它的 remote,但新装环境一般不用管。

想回退到官方源,也很简单。先改 git remote 回https://github.com/Homebrew/brew.git,再删除~/.zprofile里写的两个HOMEBREW_*_DOMAINexport。这样就能恢复默认网络路径。恢复不了的话,直接brew config看当前生效变量,往往一眼就能发现问题。

5. Git 环境配置:装新版本,改对五个全局配置

5.1 为什么不直接用系统自带的 Git

macOS 即使只装了 Command Line Tools,也会自带一个 Git,版本通常够用,但不会很新。2026 年这个时候,很多仓库已经在用新特性,而且新版 Git 在 macOS 上跑得更顺。所以我向来都是第一时间用 Homebrew 装新版:

brew install git

装完后检查一下which git。正常情况下会输出/opt/homebrew/bin/git,如果你看到/usr/bin/git,说明 PATH 里 Homebrew 的 bin 目录优先级不够,需要确认前面brew shellenv那步有没有正确执行。

5.2 五个必须配置的全局选项及其原因

Git 装好后,我习惯立刻配置下面这五项:

git config --global user.name "你的昵称" git config --global user.email "你的邮箱" git config --global init.defaultBranch main git config --global core.editor "code --wait" git config --global credential.helper osxkeychain

解释一下:

  • user.name和user.email会写进你的每一次 commit,别人能看到,所以尽量用真实名字和工作邮箱。如果用的是 GitHub 隐私邮箱,就填 GitHub 提供的username@users.noreply.github.com。
  • init.defaultBranch main让git init默认创建main分支,避免生成master后又要手动改。
  • core.editor "code --wait"让 Git 在需要你输入 commit message 时自动打开 VSCode,保存并关闭窗口后继续执行。前提是你装了 VSCode 并且配置过code命令行工具。
  • credential.helper osxkeychain让 Git 通过 macOS 钥匙串保存 HTTPS 密码,一次认证,后续免密推送。

5.3 进一步优化:别名、中文显示和换行符

基础配置之外,我还会加这几条,尤其在中文环境下很实用:

git config --global core.quotepath false git config --global color.ui auto git config --global alias.lg "log --oneline --graph --all --decorate -10" git config --global alias.st "status" git config --global alias.co "checkout" git config --global alias.br "branch"

core.quotepath false解决 Git 状态里中文文件名变成八进制乱码的问题。color.ui auto让命令输出带颜色,阅读起来舒服很多。alias则是给常用命令设快捷键,git lg一条命令就能看到清晰的提交历史图,体验和裸用git log完全不同。

5.4 配置完成的检查方式

全局配置是否正确,一条命令就能看全:

git config --global --list

你会看到类似这样的输出:

user.name=你的昵称 user.email=你的邮箱 init.defaultbranch=main core.editor=code --wait credential.helper=osxkeychain

到这里,Git 的基础环境已经可用了。

6. SSH Key 配置与远程仓库连通性验收

6.1 为什么选择 ed25519 密钥

配置 Git 和 GitHub 这种远程仓库通信时,有 HTTPS 和 SSH 两种协议。HTTPS 简单,但频繁推送要反复认证;SSH 配置好之后免密,长期用更舒服。生成密钥时,我推荐 ed25519:

ssh-keygen -t ed25519 -C "你的邮箱@example.com" -f ~/.ssh/id_ed25519

-t ed25519指定密钥类型,安全强度高、密钥短、生成快。GitHub 和 Gitee 都支持。如果遇到特别老的服务端不支持 ed25519,才考虑传统的ssh-keygen -t rsa -b 4096。

执行时会让你设置 passphrase。我建议设一个,因为密钥文件本身就等于一把钥匙,丢了后果很严重。不过设置了 passphrase 之后,每次 SSH 连接都要手动输入,所以需要配合后面的 ssh-agent 把它“记住”。

6.2 配置 ssh-agent 和 UseKeychain,告别每次输密码

新版本 macOS 上,建议这样把密钥加入钥匙串:

eval "$(ssh-agent -s)" ssh-add --apple-use-keychain ~/.ssh/id_ed25519

如果你的系统提示不认识--apple-use-keychain,就改成:

ssh-add -K ~/.ssh/id_ed25519

然后创建或编辑~/.ssh/config,写入:

Host github.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519

UseKeychain yes表示把 passphrase 存到 macOS 钥匙串,退出终端再打开也不会反复问你。AddKeysToAgent yes表示连接时自动把密钥加到 agent。这一套配置完,基本可以实现“配一次,用半年”。

6.3 添加公钥到 GitHub,并测试连通性

查看公钥内容:

cat ~/.ssh/id_ed25519.pub

macOS 上也可以直接复制到剪贴板:

pbcopy < ~/.ssh/id_ed25519.pub

然后登录 GitHub,进入 Settings → SSH and GPG keys → New SSH key,粘贴保存。Gitee 的操作类似,在个人设置里也有 SSH 公钥管理。

测试命令:

ssh -T git@github.com

如果看到:

Hi yourname! You've successfully authenticated, but GitHub does not provide shell access.

说明 SSH 链路完全打通。Gitee 的测试命令是ssh -T git@gitee.com,同样会输出一行欢迎信息。这样之后,你可以直接:

git clone git@github.com:yourname/your-repo.git

完成免密克隆。

6.4 常见的 SSH 报错排查顺序

我列几个实际遇到过的报错,按照出现频率排:

报错现象原因处理方式
Permission denied (publickey)公钥没加到平台,或 SSH 没走对私钥检查 GitHub 后台公钥;检查~/.ssh/config的IdentityFile
Host key verification failed本机 known_hosts 里没有目标主机记录或记录冲突执行ssh-keygen -R github.com后重连
git@github.com: Permission denied用了 HTTPS 地址却配了 SSH 密钥改用git@github.com:...地址
连接超时网络访问 GitHub 不稳定保持 SSH 协议,但可以先检查~/.ssh/config是否配置了代理等额外参数

实际上我见过最多的,既不是网络问题也不是密钥问题,而是用户把公钥和私钥的概念搞反了。复制粘贴到 GitHub 的必须是.pub结尾的公钥,私钥只能留在本机。

7. 配置完成后的验收清单,以及日常维护该做哪些事

7.1 一条命令检查所有核心配置是否到位

环境配置完,最后我会做一次快速体检:

brew --version && git --version && which git

这三条命令的输出,可以确认 Homebrew、Git 本体、以及git命令路径是否都正确。接着:

git config --global --list ssh -T git@github.com

到这里,Homebrew 和 Git 的配置就已经全部验证完毕。之后你可以放心地进入其他开发环境的搭建,比如装 Node.js、Python、数据库等,一路都会顺畅很多。

7.2 建议立刻做的三个仓库演示操作

为了确认 Git 工作流没问题,我习惯空跑一遍最基础的流程。随便找个目录执行:

mkdir ~/demo && cd ~/demo git init echo "hello" > README.md git add . git commit -m "chore: init demo"

能正常 commit,说明用户信息、默认分支、编辑器配置都没问题。再配合远程仓库git remote add origin git@github.com:...和git push -u origin main,就能验证 SSH 推送链路。

7.3 Homebrew 的日常维护节奏

Homebrew 和 Git 配好后,不是就一劳永逸了。我自己的维护节奏是:

brew update brew upgrade brew cleanup --prune=all brew autoremove

brew update更新索引,brew upgrade升级所有可更新的软件,brew cleanup清理旧版本残留的压缩包,brew autoremove删除不再被依赖的旧包。这四条命令不用每天跑,一两周一次足够了。如果你发现brew install时更新很慢,可以用HOMEBREW_NO_AUTO_UPDATE=1环境变量跳过自动更新,但代价是你需要记得手动brew update,否则可能装到较旧版本。

7.4 关于“换源”这个动作的个人体会

写到最后,想聊聊心态问题。很多人对“换源”有顾虑,觉得是不是绕过了什么官方机制,会不会不安全。我实际用了这几年下来的体会是:换源本身是镜像站提供的标准服务,清华、中科大这类知名高校镜像站运维规范、同步频率高,只要你用的是官方安装脚本,只是把仓库地址和下载地址从 GitHub 换成镜像,并没有改变软件本身的来源。真正需要警惕的,反而是那些把“一键安装”和“换源”捆绑在一起的第三方脚本,代码不可审计,风险不可控。

另外提醒一句,环境配置这件事,最好一台新机只认真做一次,然后把用到的命令整理成自己的初始化笔记。下次再换电脑或者重装系统,照着笔记跑一遍,十分钟就能回到熟悉的开发状态,比每次去网上翻教程、到处踩坑强得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询