最近自己加的开发交流群里有不少问git push远程仓库报错的问题,报错内容基本都是error: failed to push some refs to‘git@github.com:xxx.git’。看到这里,又想起当年被git所支配的恐怖,当年也是踏过这个坑的人,记得怎么试都不行,折腾了一下午,后来经高人指教后含泪解决,本身不是什么大问题,但是如果不注意一些细节的话,还是相当折磨人的。
这个问题发生的背景一般是:
想把自己本地的某个项目关联到远程仓库并推送上去
接着他会做如下操作:
本地项目—>远程创建仓库—>本地关联远程—>推送最新代码
最后一个步骤发生问题:
那么问题是怎么导致发生的呢?
那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,完事儿了,没想到让你折腾一番的问题就这么简单的解决了吧,看来真是细节不容忽视啊~