1. 首页 > 编程开发 > github

Git 新手常见报错及解决方法

一份 Git 新手常见报错及解决方法清单,我整理了新手在使用 Git 关联 GitHub、推送 / 拉取代码时最容易遇到的 8 类报错,每个报错都包含「报错原因」和「具体解决步骤」,新手能直接照着操作。

Git 新手常见报错及解决方法

1. 报错:fatal: remote origin already exists

  • 报错原因:本地仓库已经关联过名为 origin 的远程仓库,重复执行 git remote add origin 导致冲突。
  • 解决步骤
    1. 先查看已关联的远程仓库:git remote -v
    2. 如果是关联错了地址,先删除原有关联:git remote rm origin
    3. 重新关联正确的仓库地址:git remote add origin <你的GitHub仓库地址>

2. 报错:fatal: Authentication failed for 'https://github.com/xxx/xxx.git/'

  • 报错原因:GitHub 不再支持密码登录,输入密码会验证失败;或用户名 / 令牌输入错误。
  • 解决步骤
    1. 生成 GitHub 个人访问令牌(PAT):
      • 打开 GitHub → 头像 → Settings → Developer settings → Personal access tokens → Generate new token
      • 勾选 repo 权限,设置有效期,点击 Generate token,复制生成的令牌(只显示一次,务必保存)
    2. 推送代码时,用户名填 GitHub 账号名,密码填上述令牌(而非 GitHub 登录密码)。
    3. (可选)配置凭据缓存,避免重复输入:git config --global credential.helper cache

3. 报错:error: src refspec main does not match any

  • 报错原因:本地仓库没有提交任何代码(暂存区 / 本地仓库为空),直接执行 git push 导致。
  • 解决步骤
    1. 先确认文件状态:git status
    2. 添加文件到暂存区:git add .
    3. 提交到本地仓库:git commit -m "首次提交"
    4. 再执行推送:git push -u origin main

4. 报错:fatal: unable to access 'https://github.com/xxx/xxx.git/': Could not resolve host: github.com

  • 报错原因:网络问题(如未联网、DNS 解析失败、代理 / 防火墙拦截)。
  • 解决步骤
    1. 检查网络:打开浏览器访问 github.com,确认能正常打开。
    2. 关闭代理 / 梯子(或配置 Git 适配代理):
      • 配置代理(如果用梯子):git config --global http.proxy http://127.0.0.1:7890(端口号改自己的)
      • 取消代理:git config --global --unset http.proxy
    3. 刷新 DNS:Windows 执行 ipconfig /flushdns,Mac/Linux 执行 sudo dscacheutil -flushcache

5. 报错:error: Your local changes to the following files would be overwritten by merge

  • 报错原因:本地文件修改后未提交,执行 git pull 时远程代码会覆盖本地修改。
  • 解决步骤
    1. 方案 1(保留本地修改):
      • 暂存本地修改:git stash
      • 拉取远程代码:git pull
      • 恢复本地修改:git stash pop
    2. 方案 2(放弃本地修改,谨慎使用):
      • 重置本地代码到远程最新版本:git reset --hard origin/main

6. 报错:Merge conflict in <文件名>(合并冲突)

  • 报错原因:本地和远程对同一个文件的同一行代码做了不同修改,Git 无法自动合并。
  • 解决步骤
    1. 执行 git status,找到标红的冲突文件。
    2. 打开冲突文件,找到类似以下标记的内容:
      plaintext
      <<<<<<< HEAD
      本地修改的内容
      =======
      远程修改的内容
      >>>>>>> origin/main
      
    3. 删除冲突标记,手动修改为最终想要的内容(比如保留其中一种,或合并两者)。
    4. 保存文件后,重新提交:git add <冲突文件名>git commit -m "解决合并冲突"git push

7. 报错:fatal: branch 'main' has no upstream branch

  • 报错原因:本地 main 分支未关联远程 main 分支,直接执行 git push 导致。
  • 解决步骤
    1. 首次推送时关联分支:git push -u origin main(-u 是 --set-upstream 的缩写,关联后后续只需 git push)。
    2. 若已推送过,手动关联:git branch --set-upstream-to=origin/main main

8. 报错:git: 'LFS' is not a git command

  • 报错原因:安装 Git 时未勾选 LFS 相关选项,或 Git 版本过旧。
  • 解决步骤
    1. 忽略该报错(新手一般用不到 LFS,用于管理大文件),直接执行正常 Git 命令。
    2. 若需要 LFS,升级 Git 并重新安装(勾选 LFS 选项),或执行:git lfs install

总结

  1. 新手最常踩的坑:未提交代码就推送、密码登录失败、远程仓库重复关联,优先检查这三类问题。
  2. 遇到报错先执行 git status 查看仓库状态,再根据报错关键词定位原因(如 origin 关联问题、Authentication 认证问题)。
  3. 合并冲突是正常现象,核心是手动修改冲突文件后重新提交,不要直接删除文件。

声明:本文网友投稿,观点仅代表作者本人,不代表鲁班SEO赞同其观点或证实其描述。

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:9:30-18:30,节假日休息