Git新手推送本地仓库至GitHub被拒绝报错该如何解决?
报错原因
你在GitHub上创建远程仓库时,勾选了自动生成README、LICENSE或.gitignore文件的选项,导致远程仓库存在本地Git仓库没有的提交记录。Git为了避免覆盖远程已有的内容,因此拒绝了你的推送请求。
解决方案
你可以根据自己的需求选择以下任意一种方案操作:
方案1:无需保留远程仓库内容(推荐首次推送新仓库使用)
如果你确认远程仓库里自动生成的内容不需要保留,希望完全用本地仓库内容覆盖远程,直接执行强制推送命令即可:
git push -u origin master -f
注意:该操作会清空远程仓库现有的所有内容,仅可用于自己新建的空白仓库,不要在多人协作的仓库上使用。
方案2:需要保留远程仓库内容
如果你需要保留远程仓库里的内容,要先把远程内容合并到本地之后再推送,操作步骤如下:
- 第一步:拉取远程内容并允许合并无关仓库的历史记录
git pull origin master --allow-unrelated-histories
- 第二步:如果执行上一步后提示文件冲突,打开冲突标记的文件,删除
<<<<<<< HEAD、=======、>>>>>>> xxx这类冲突标记,调整文件内容为你需要的最终版本后,执行以下命令提交合并结果:
git add . git commit -m "合并远程与本地内容"
- 第三步:执行推送命令即可完成推送
git push -u origin master
后续避免该问题的技巧
后续创建GitHub新仓库时,不要勾选「Add a README file」、「Add .gitignore」、「Choose a license」这三个选项,直接创建完全空白的远程仓库,本地初始化后直接推送就不会出现该报错。
内容的提问来源于stack exchange,提问作者Atharva
相关产品推荐
相关产品推荐

