直接查看解决方法 请看:3、我认为更简单更好的方法
背景:学习Git和GitHub ,尝试把本地的一个仓库通过Git push 到GitHub上,实现备份和多人协作;(我的GitHub仓库为新建仓库,本地仓库已有要push的内容)
报错1:There isn’t anything to compare.
报错2:error:failed to push some refs to 'github.com:........'
1、报错具体过程:
在本地进行push之后,查看GitHub准备进行merge,提示 There isn’t anything to compare.
分析:查看别的博主的帖子,猜测原因是:本地所提交使用的分支 master 与远程仓库默认分支 main 未对应上。
2、针对上面原因,尝试其他博主给出的解决方法:保持分支一致
(1)习惯以master为默认分支的话,就将GitHub上的main branch 改名为 master branch(别忘了把刚才提交的master分支先删除),
或者:
改名之后进行push,爆出了第二个错误:error:failed to push some refs to 'github.com:..',如下图:
先说简单粗暴的解决方法,在上面命令后加 -f 强制执行:git push origin master -f;这样会覆盖整个仓库哈,谨慎操作(之后就不用加 -f 了),我到这就能解决问题了;下面还有其他方法,感兴趣可以继续看。
(2)与上面方法一样,给本地仓库的master 改为 main (git branch -M main)(不嫌麻烦创建一个main分支也可以,别忘了切换),执行命令的时候加上 -f 强制执行:git push origin main -f;
3、我认为更简单更好的方法:
$ git pull --rebase origin main //一定要带--rebase参数
$ git push origin master
//在 Git 中使用 --rebase 选项意味着当你从远程仓库拉取更新时,
你将使用 rebase(变基)的方式而不是默认的合并(merge)方式来整合这些更新。
//感兴趣的伙伴可以自行查询 --rebase 参数带来的其他影响。
测试过程:
为了测试,我的GitHub仓库里新建了一些文件
在GitHub上merge没有任何问题!