必须搭建局域网git私有服务器:启用mac ssh服务、创建专用git用户、初始化--shared裸仓库、配置客户端免密ssh访问,即可实现免公网、免第三方的克隆与推送。

要在Mac上让同一局域网内的其他电脑无需公网、不依赖第三方平台就能直接克隆、推送代码,必须搭建一个可被局域网设备访问的Git私有服务器,且服务需稳定运行、支持读写、无需每次输密码。
开启并配置系统SSH服务
Mac自带OpenSSH服务,但默认未启用。必须手动打开,否则其他设备无法通过ssh协议连接你的Mac。
打开「系统设置」→「网络」→「详细信息」→「代理」,确认未启用影响端口的代理;再进入「系统设置」→「用户与群组」→ 点击左下角锁图标解锁 → 点击「登录选项」→ 开启「远程登录」→ 勾选“允许所有管理员访问”或指定用户(推荐指定一个专用git用户)。
执行 sudo systemsetup -getremotelogin,输出 Remote Login: On 即表示已启用。
【务必确认防火墙未拦截22端口】:前往「系统设置」→「隐私与安全性」→「防火墙」→「防火墙选项」→ 勾选“远程登录 (SSH)”或手动添加端口22为允许项。
创建专用git用户与裸仓库
不建议用当前登录账户直接托管仓库——权限混乱、日志难追踪、后续扩展困难。
第一步:在终端中执行以下命令新建用户
sudo dscl . -create /Users/git
sudo dscl . -create /Users/git UserShell /bin/zsh
sudo dscl . -create /Users/git RealName "Git Server"
sudo dscl . -create /Users/git UniqueID "503"
sudo dscl . -create /Users/git PrimaryGroupID 20
sudo dscl . -create /Users/git NFSHomeDirectory /Users/git
sudo createhomedir -u git
第二步:切换到git用户并创建仓库根目录
sudo su - git → mkdir -p ~/repos → exit
使用约定式提交(Conventional Commits)从 Git 历史记录中生成结构化变更日志,支持多种格式、AI 增强型描述以及可自定义的范围……
第三步:以git身份初始化裸仓库
sudo -u git git init --bare --shared ~/repos/myproject.git
这一步生成的是纯版本库数据,不含工作区文件,适合服务器托管;【--shared参数不可省略】,否则其他用户通过SSH推送时会因权限不足被拒绝。
配置客户端免密SSH访问
方法一:客户端生成密钥后手动部署公钥(推荐,可控性强)
在要克隆/推送的那台电脑上执行:ssh-keygen -t ed25519 -C "dev@local" → 一路回车使用默认路径 → 得到 ~/.ssh/id_ed25519.pub;复制其全部内容,在Mac上执行:sudo -u git mkdir -p /Users/git/.ssh && echo "粘贴的公钥内容" | sudo tee -a /Users/git/.ssh/authorized_keys && sudo chmod 700 /Users/git/.ssh && sudo chmod 600 /Users/git/.ssh/authorized_keys
方法二:用ssh-copy-id(需客户端也装有ssh-copy-id,macOS默认无,可用brew install ssh-copy-id补全)
ssh-copy-id -i ~/.ssh/id_ed25519.pub git@你的Mac局域网IP
验证是否生效:在客户端终端执行 ssh -T git@你的Mac局域网IP,若返回 Welcome to Git! 类似提示,说明免密成功。
从局域网其他设备克隆和推送
在Windows/Linux/macOS任意局域网设备上,打开终端或Git Bash,执行:
git clone ssh://git@你的Mac局域网IP/Users/git/repos/myproject.git
克隆成功后,进入项目目录,新建文件并提交:
echo "# test" > README.md → git add . → git commit -m "init" → git push origin main
此时代码已真实写入Mac上的裸仓库;其他设备也可随时pull获取最新变更。










