这个问题发生的背景一般是:
想把自己本地的某个项目关联到远程仓库并推送上去,接着他会做如下操作:
本地项目—>远程创建仓库—>本地关联远程—>推送最新代码
最后一个步骤发生问题:
那么问题是怎么导致发生的呢?
拿Android项目举例,很多人在创建仓库的时候,都会勾选这个操作
初识了一个README文件并配置添加了Android项目忽略文件。当点击创建仓库时,它会帮我们做一次初始提交。于是我们的仓库就有了README.md和.gitignore文件,然后我们把本地项目关联到这个仓库,并把项目推送到仓库时,回报文章开题的那个错误,这是因为,我们在关联本地与远程时,两端都是有内容的,但是这两份内容并没有联系,当我们推送到远程或者从远程拉取内容时,都会有没有被跟踪的内容,于是你看git报的详细错误中总是会让你先拉取再推送,但是拉取总是失败。
想要避免这种问题,就要保持创建的仓库是一个空仓库,什么都没有。
并且在创建仓库时,其实Github是有提示的,相信很多人都没有注意过红框里面的小字。 Skip this step if you’re importing an existing repository. 如果要导入现有存储库,请跳过此步骤。 This will let you immediately clone the repository to your computer. 这将允许您立即将存储库克隆到您的计算机。
看到没,其实Github都已经告诉过你了,只是你没注意到。当把红框里的钩钩去掉创建仓库后,Github会给你一个提示。
再跟着给的提示在自己本地项目的跟目录里敲就行了
之后再试试把项目推送上去
ok,完事儿了,没想到让你折腾一番的问题就这么简单的解决了吧,看来真是细节不容忽视啊~
如果你没有勾选,但是远程仓库里面有之前提交的文件,也可能会造成该错误。
如果你不想重新创建项目
出错之后,运行git pull --rebase origin master,再git push(git push -u origin master)上去就可以。但是如果退出git,再次提交可能还会报错,还得运行一下。
安利一个在idea中使用git提交的文章:https://www.cnblogs.com/WangYunShuaiBaoLe/p/WY.html