Gitee Push 失败 7 日谈:每天一个踩坑故事
Day1:仓库已存在 README
新手把空项目 git init
后强行 push,被 remote rejected
。
解法:git pull --rebase origin master
先把远端 README 拉下来再推。
Day2:Windows 凭据缓存了旧账号
HTTPS 用户修改了 Gitee 密码,但系统仍用旧令牌。
解法:控制面板 → 凭据管理器 → 删除 gitee.com
条目,重新输入密码即可。
Day3:强制推送的代价
同学用 git push -f
覆盖同事代码,被拉黑。
黄金准则:先用 git push --force-with-lease
,或走 Merge Request 流程。
Day4:本地仓库“二房东”
项目里套项目,出现两个 .git
,push 时路径错乱。
解法:删掉嵌套文件夹里的 .git
,保留顶层仓库。
Day5:分支保护规则
master
被设为“禁止直接 push”。
解法:新建功能分支 → 发起 Pull Request → 管理员审核后合并。
Day6:大文件 413
一次性把 700 MB 数据集 push 上去,CI 直接 413。
解法:
临时:
git config http.postBuffer 524288000
长久:用 Git LFS 或拆仓库。
Day7:DNS 抽风
fatal: unable to access ... Couldn't resolve host
解法:把 DNS 换成 8.8.8.8 / 114.114.114.114,重开终端。
彩蛋:一键自检脚本
把下面脚本保存为 git-push-check.sh
,push 前先跑一遍:
bash
复制
#!/bin/bash
echo "=== Git Push Checklist ==="
git remote -v
ssh -T git@gitee.com || echo "❌ SSH Key 有问题"
git fetch origin
git status --porcelain | grep -q . && echo "❌ 有未提交更改"
git log --oneline -10
写在最后
七日踩坑,七日成长。把错误日志当教材,把失败经历变经验,Git 推送路上才能越走越稳。