初始化本地仓库前须确认当前目录为空且为项目根目录,检查并删除残留的.git文件夹后执行git init;添加远程仓库时注意https与ssh协议差异;首次push需用git push -u origin main绑定上游分支。

初始化本地仓库前先确认当前目录是否为空
VSCode 里新建文件夹不等于 Git 仓库,git init 前得确保你在项目根目录下,且没有残留的 .git 文件夹。常见错误是:在已有子目录里执行 git init,结果仓库范围只覆盖该子目录,后续 git add . 找不到上层文件。
- 打开 VSCode 终端(
Ctrl+`),用pwd或cd确认路径是项目根目录 - 运行
ls -a检查是否存在.git;如果存在但不是你想要的,先rm -rf .git - 再执行
git init,终端会提示Initialized empty Git repository in ...
添加远程仓库时别漏掉 HTTPS/SSH 协议差异
远端地址写错最常导致 git push 报 fatal: Could not read from remote repository。GitHub、GitLab 默认网页上给的是 HTTPS 地址(如 https://github.com/user/repo.git),但如果你本地配了 SSH key,就得换成 git@github.com:user/repo.git 格式。
- HTTPS 方式:无需额外配置,但每次 push 都可能弹窗输账号密码(或需配置
git credential store) - SSH 方式:需提前生成并添加公钥到远端账户,地址必须以
git@开头,且不能带https:// - 检查是否配好:运行
git remote add origin <url></url>后,用git remote -v看输出是否匹配预期协议
第一次 push 必须带 -u 参数绑定上游分支
刚初始化的本地仓库没有默认跟踪关系,直接 git push 会失败,提示 fatal: The current branch main has no upstream branch。这不是网络或权限问题,而是 Git 不知道该把本地 main(或 master)推到远端哪个分支。
- 执行
git push -u origin main(注意分支名,GitHub 新仓库默认是main,旧项目可能是master) -
-u(即--set-upstream)只用第一次,之后直接git push就行 - 如果远端仓库已存在 README 或 .gitignore,而你本地没拉取,直接 push 会被拒绝——此时得先
git pull --allow-unrelated-histories合并,再 push
VSCode 内置 Git 面板能省事但不能替代命令理解
VSCode 左侧源代码管理图标(Ctrl+Shift+G)能点选文件 stage、输入 commit message、点击“同步更改”,看似全自动。但它不会帮你处理远程地址错误、分支名不一致、未初始化等底层问题,反而容易掩盖报错细节。
- 首次推送建议全程用终端命令,看清每步返回信息,比如
git status是否显示nothing to commit,git push是否返回branch 'main' set up to track 'origin/main' - VSCode 面板里点“同步更改”本质就是执行
git push,如果失败,它只显示模糊提示,不如终端里的完整错误信息有用 - 分支名不一致时(比如本地是
master,远端期望main),VSCode 可能卡在“正在同步”,实际需要手动git branch -M main改名再 push
远端仓库是否公开、是否有写入权限、本地 Git 用户邮箱是否和远端账户绑定,这些都不是 VSCode 能自动判断的。流程走通的关键,在于每一步命令的反馈是否符合预期,而不是按钮有没有变灰。











