Git首次推送到master遇快进错误及合并无关历史失败求助
解决Git推送失败&拒绝合并无关历史的问题(针对新空仓库)
嗨,刚接触Git碰到这种问题太正常了!明明是全新的仓库,怎么就冒出“无关历史”了呢?我帮你捋清楚原因和解决办法:
问题根源
你说这是全新的空仓库,但大概率是创建GitHub仓库时,不小心勾选了Initialize this repository with a README或者Add a .gitignore这类选项——这时候远程仓库其实已经有了一个初始提交(对应生成的README等文件)。而你本地的仓库是刚初始化的,还没有任何提交记录,Git会判定这两个仓库的历史完全不相关,所以既不让你直接推送,也不让你普通pull合并。
两种解决办法,按需选择
办法一:保留远程仓库的内容(比如想保留自动生成的README)
如果远程的README或.gitignore对你有用,就用这个方法把远程内容合并到本地,再推送:
- 执行带允许合并无关历史参数的pull命令:
git pull origin master --allow-unrelated-histories
- 执行后可能会弹出合并编辑界面(如果没有同名文件冲突,直接保存退出即可)
- 最后再推送本地内容:
git push -u origin master
办法二:完全覆盖远程仓库(从头开始)
如果远程的初始内容对你没用,想完全用本地的内容覆盖远程,就用强制推送:
git push -u origin master --force
⚠️ 注意:这个操作会清空远程仓库的所有现有内容,确认远程没有重要文件再执行!
后续避坑小技巧
以后创建GitHub新仓库时,如果打算先在本地初始化仓库再推送,记得不要勾选任何初始化选项,让远程保持完全空的状态,这样直接执行git push -u origin master就不会出问题啦~
内容的提问来源于stack exchange,提问作者Nakkiran Sunassee
相关产品推荐
相关产品推荐

