Mac终端执行git push -u origin main卡在Total阶段求助
解决Git Push停滞在打包状态的问题
排查与修复方案
1. 确认网络与服务器状态
- 测试网络连通性:执行
ping github.com,检查是否有稳定响应,丢包严重的话切换至有线网络或更稳定的WiFi。 - 查看GitHub服务状态:执行
curl https://status.github.com/api/status.json,若服务器存在故障,等待恢复后再操作。
2. 调整Git打包配置
- 增大打包内存上限:执行
git config --global pack.windowMemory "1024m"和git config --global pack.packSizeLimit "2g",避免内存不足导致打包停滞。 - 尝试无增量推送:执行
git push --no-thin origin main,跳过增量压缩直接推送完整包,验证是否能完成。
3. 拆分推送内容
- 分批推送文件:先推送小文件目录,执行
git add small-files-dir/、git commit -m "Push small files first"、git push origin main,之后再逐步推送剩余内容。 - 排查隐藏大文件:执行
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print $1}')",找出仓库内体积最大的文件,若未处理,执行git rm --cached large-file移除后重新提交(不会删除本地文件)。
4. 重置Git连接
- 终止当前停滞进程:按
Ctrl+C结束推送,执行git fetch origin同步远程仓库状态,再尝试git push origin main。 - 重新绑定远程仓库:执行
git remote remove origin,再用SSH地址重新添加:git remote add origin git@github.com:your-username/your-repo.git(替换为你的仓库地址),SSH推送比HTTPS更稳定。
5. 更新Git版本
- 查看当前版本:执行
git --version,若版本较旧,在Mac上用Homebrew更新:brew upgrade git,旧版本可能存在打包逻辑bug。
内容的提问来源于stack exchange,提问作者Penelope Atkinson
相关产品推荐
相关产品推荐

