git push是将本地提交推送到远程仓库的命令,但需先配置用户信息、关联远程仓库、设置上游分支,并避免远程已有提交导致非快进拒绝。

git push 是把本地提交发到远程仓库的命令,但直接敲它大概率会失败——因为缺前置动作,比如没初始化、没关联远程地址、没配置身份,甚至分支名都对不上。
没配 user.name 和 user.email 就 commit,git commit 会直接报错
错误信息长这样:Author identity unknown *** Please tell me who you are.
Git 每次提交必须带作者信息,不配就卡死。这不是可选项,是硬性门槛。
- 全局配一次(推荐):
git config --global user.name "你的Gitee用户名"和git config --global user.email "你在Gitee绑定的邮箱" - 如果某个项目要用不同身份(比如公司/个人账号混用),进到该项目根目录,去掉
--global再配一遍,会写进.git/config覆盖全局 - 配完可以用
git config --global --get user.name验证是否生效
git push origin main 报错 “rejected”,大概率是远程有 README 或 .gitignore
这是新手最常踩的坑:在 Gitee/GitHub 新建仓库时勾选了「初始化 README」,导致远程已有提交,而你本地是全新仓库、零提交。Git 不允许非快进(non-fast-forward)推送,直接拒绝。
- 新建远程仓库时,**一定不要勾选「初始化仓库」** —— 空仓库才好推
- 如果已经误操作,有两个解法:
– 方案一(推荐):删掉远程仓库重来;
– 方案二:先git pull origin main --allow-unrelated-histories合并再推(但会多一个合并提交,污染历史) - 顺带一提:
main是现在主流默认分支名,不是master;如果远程是master,你就得推git push -u origin master
第一次推代码必须用 -u 参数,否则下次还得打全命令
git push -u origin main 中的 -u(即 --set-upstream)是关键。它把本地 main 分支和远程 origin/main 绑定为“上游分支”。
- 绑定后,后续只需
git push,Git 自动知道推哪、推到哪 - 不加
-u,每次都要写全git push origin main,容易漏、易错 - 如果忘了加,可以用
git branch --set-upstream-to=origin/main main补绑
SSH 地址比 HTTPS 地址更省事,但公钥没配好就一直输密码
远程仓库地址用 git@gitee.com:xxx/yyy.git(SSH)还是 https://gitee.com/xxx/yyy.git(HTTPS),差别很大。
- HTTPS 每次
git push都弹窗要输账号密码(Gitee 已不支持明文密码,得用 Personal Access Token 替代) - SSH 只需配一次公钥,之后全自动免密;配法见 Gitee 官方「SSH 公钥配置」页,核心就两步:
ssh-keygen -t ed25519 -C "your_email@example.com",然后把~/.ssh/id_ed25519.pub内容粘贴到 Gitee 后台 - 配好后用
ssh -T git@gitee.com测试连通性,返回Welcome to Gitee.com才算成功
真正的难点不在命令本身,而在于每一步的依赖关系:没配身份不能 commit,没清空远程历史不能 push,没设 upstream 下次还得重复输,没配 SSH 就得反复认证。这些环节断一环,整个流程就卡住。











