You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git提交含外部文件夹且Push被拒的问题排查求助

Git推送异常问题的解决方法

问题说明

常规推送代码时遇到两个问题:

  1. Git错误地尝试推送项目外的所有文件夹
  2. 推送触发非快进式拒绝错误,具体报错如下:

PS C:\ecommercejib> git push --set-upstream origin main
推送至 https://github.can/JuanIgnacioBe11avitis/ecommercejib
! [被拒绝] main -> main (非快进式更新)
error: 无法推送部分引用至 'https://github.com/JuanIgnacioBe11avitis/ecommercejib'
提示:更新被拒绝,因为当前分支的提交落后于对应的远程分支。
提示:在再次推送前,请整合远程的变更(例如使用 'git pull ...')。
提示:详情请查看 'git push --help' 中的「关于快进式更新的说明」。
PS C:\ecommerjic>

已尝试删除重建仓库、通过git remote -v确认远程地址正确,但问题未解决。

分步解决

一、修复"推送项目外文件夹"问题

  1. 确认终端路径正确性
    确保当前终端处于项目根目录(即包含.git文件夹的ecommercejib目录),从报错最后一行看路径疑似拼写错误,先切换到正确路径:
    cd C:\ecommercejib
    
  2. 重置Git追踪范围
    • 查看当前Git追踪的所有文件,确认是否包含项目外内容:
      git ls-files
      
    • 移除所有已追踪的文件(本地文件不会被删除):
      git rm -r --cached .
      
    • 检查并完善.gitignore文件,明确排除项目外的目录和无需追踪的文件,只保留项目内需要提交的内容。
    • 重新添加项目内文件到Git:
      git add .
      
    • 提交这次修正:
      git commit -m "修正Git追踪范围,仅包含项目内文件"
      

二、解决"非快进式拒绝"问题

该错误是因为本地分支的提交进度落后于远程分支,即使重建仓库,远程可能仍有遗留历史,按以下步骤处理:

  1. 拉取远程最新代码
    如果本地没有未提交的重要变更,直接拉取并合并远程分支:

    git pull origin main
    

    若出现冲突,手动解决冲突后再提交。

  2. 强制推送(仅在确认远程内容可覆盖时使用)
    如果你确定远程分支的旧内容可以被覆盖(比如重建仓库后远程残留了无效提交),执行强制推送:

    git push -f origin main
    

    注意:强制推送会彻底覆盖远程分支历史,操作前务必确认。

  3. 重新关联远程分支
    若分支关联存在异常,先取消关联再重新设置:

    git branch --unset-upstream main
    git push --set-upstream origin main
    

额外检查项

  • 确认远程仓库地址无误:git remote -v输出的URL需与GitHub仓库地址完全一致(注意报错中的URL存在拼写错误github.can,正确应为github.com)
  • 检查当前操作分支:执行git branch确认处于main分支

内容的提问来源于stack exchange,提问作者user20911687

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 10:20:46