必须先运行git init创建本地.git目录启用跟踪,再用git remote add origin 关联远程仓库,URL须与平台复制的SSH或HTTPS地址完全一致;提交需依次执行git add、git commit -m和git push -u origin main。

初始化本地仓库并关联远程地址
本地没有 .git 目录时,必须先运行 git init 创建空仓库。这一步不等于“已连接远程”,只是为当前文件夹启用 Git 跟踪能力。关联远程仓库用的是 git remote add origin <url></url>,其中 origin 是远程仓库的默认别名,<url></url> 必须和你在 GitHub/GitLab 页面上复制的 SSH 或 HTTPS 地址完全一致——HTTPS 地址末尾带 .git,SSH 地址通常以 git@ 开头,混用会导致推送失败。
- 如果远程仓库非空(比如已有 README),直接
git push会拒绝,需先git pull --allow-unrelated-histories合并 - 别名不必非用
origin,但后续所有git push命令默认都指向它,改名后需显式指定,如git push upstream main - 运行
git remote -v可确认地址是否正确、协议是否匹配(尤其检查是否误粘贴了网页 URL 而非 Git 克隆地址)
提交前必须完成的三步操作
Git 提交不是“一键上传”,而是分阶段:暂存 → 提交 → 推送。漏掉任一环节都会导致代码没进远程仓库。
- 先用
git add .(或git add <file></file>)把修改加入暂存区;只git commit不加add,提交的是上次暂存的内容,不是最新改动 - 再用
git commit -m "描述"把暂存区快照存入本地历史;没有-m参数会打开编辑器,新手容易卡住退出,建议始终带短描述 - 最后
git push -u origin main(注意分支名,GitHub 新建仓库默认是main,旧项目可能是master);-u参数只用第一次,它把本地main和远程origin/main绑定,之后可直接git push
常见失败现象及对应检查点
fatal: No configured push destination:说明没运行 git remote add,或者 push 时没指定远程名和分支(如漏写 origin main)
error: failed to push some refs to 'xxx':大概率是远程分支有你本地没有的提交(例如别人推了 README),此时不能强推(--force 会丢历史),应先 git pull 合并
仅从仓库的暂存文件生成 Git 提交消息。当用户要求 Codex 根据暂存更改、缓存差异、Git 索引或已通过 `git add` 添加的文件来编写、起草、创建或建议提交消息时使用;切勿代表用户执行提交操作。
Permission denied (publickey):SSH 密钥没配好,或远程地址用了 SSH 协议但本地只有 HTTPS 凭据;临时解法是把远程地址换成 HTTPS:git remote set-url origin <a href="https://www.php.cn/link/56e4bd3f359025fba2d2e080cb2c25a9">https://www.php.cn/link/56e4bd3f359025fba2d2e080cb2c25a9</a>
- 每次
git push后,务必看终端输出最后一行是否含remote: Resolving deltas和To xxx,这才是真正成功 - GitHub 界面刷新延迟几秒,别刚敲完回车就去刷网页
首次推送后,日常提交只需两步
绑定过上游分支(即用过 -u)后,后续开发流程极简:
git add . && git commit -m "fix: xxx"git push
但要注意:如果中途切换了分支(比如从 main 切到 dev),再执行 git push 会报错,因为 dev 没绑定远程分支,得用 git push -u origin dev 显式设置一次。
分支名、远程名、协议类型、SSH 密钥状态——这四个点任意一个不对,都会让“提交到新建仓库”停在某一步,而不是静默失败。

















