将新建文件推送到GitHub仓库时遭遇gh-pages分支推送拒绝报错的原因求助
解决Git推送gh-pages分支被拒绝(fetch first)的问题
Hey there, let's break down this issue and fix it step by step!
为什么会出现这个报错?
这个推送被拒的原因很明确:你的远程gh-pages分支里有本地仓库没有的内容。这种情况通常来自两个场景:
- 你之前直接在GitHub网页上修改了
gh-pages分支的文件(比如编辑README、调整页面配置) - 有其他协作成员向同一个
gh-pages分支推送了更新
Git拒绝你的推送是一种安全机制——本地和远程的提交历史不匹配时,它不允许你直接覆盖远程的变更,防止意外丢失他人(或你自己网页端操作的)工作。
一步步解决问题
1. 同步远程分支到本地
首先要把远程gh-pages的最新变更拉到本地,合并到你的本地分支:
- 先切换到本地的
gh-pages分支(如果还没在这个分支上):git checkout gh-pages - 拉取远程
gh-pages的更新:
如果拉取时出现合并冲突,别慌:git pull origin gh-pages- 打开冲突的文件,找到
<<<<<<<、=======、>>>>>>>这类冲突标记,手动调整内容(保留你需要的部分,删除冲突标记) - 解决完所有冲突后,提交变更:
git add . git commit -m "Resolve merge conflicts with remote gh-pages"
- 打开冲突的文件,找到
2. 推送你的本地变更
同步完成后,先确保你的新建文件已经提交到本地分支(如果还没提交的话):
git add <你的新建文件名> git commit -m "Add new files to gh-pages"
然后再次推送:
git push origin gh-pages
特殊情况:强制推送(谨慎使用!)
如果你确定远程gh-pages的内容是无效的、或者是你自己误操作产生的,不需要保留,可以用强制推送覆盖远程:
git push origin gh-pages --force
⚠️ 注意:强制推送会彻底覆盖远程分支的所有历史,绝对不要在有协作的仓库里随便用,否则会丢失别人的工作!
内容的提问来源于stack exchange,提问作者Subhradeep.Maji
相关产品推荐
相关产品推荐

