经过一段惊心动魄的战斗之后,终于将代码改成了自己想要的样子了,此时,万事俱备只欠东风。只需要将代码git push提交一下,就能下班了,约妹子吃饭,逛街啦,美滋滋。想想还有点小激动呢。
然而,现实总是残酷的。伟大主义领袖马先生说过。战斗不进行到最后一步的胜利,随时都可能失败。博弈论里也有过“一着不慎满盘皆输”。看着前人无数次惨痛的教训之后,我的push也完美的爆出了一个小bug。o(╥﹏╥)o
“Push to origin/master was rejected”短小精湛的bug是如此美妙啊。but为毛会报这个bug呢,提交代码也没有错呀,前面提交的时候也没有毛病啊。每当遇到bug的时候,菜鸟的心里总是会回响起无数个声音,“没毛病啊”,“没问题啊”,“完美,简直么得问题啊”,柴犬眉头一皱,发觉事情没有这么简单。一般没问题的bug通常都是个奇行种。不能用一般的思路去解决。
水深火热的艰苦奋斗以后,Push to origin/master was rejected推到主分支时被拒绝了(阿西吧,主分支也带套路的嘛),问题的原因就是:你莫得感情,也莫得钱,所以被丑拒了。呸! 不对,是因为本地仓库和远程仓库的代码不一样。简单来说就是代码冲突了,复杂来说就是你动了不该动的代码。
找到了问题所在,接下来就是解决bug的时间了,欢迎收听你的月亮,我的心…
解决方案No.1
一般代码冲突的问题,是你在代码里随手敲了个空格,tab,或者脸滚了一下键盘,导致代码中出现了原本不该有的东西。此时,你需要做的就是 Ctrl + z 一直撤销,将代码恢复,注意不要把你自己修改的代码也撤回了。毕竟,脑子是个好东西。
解决方案No.2
在git项目对应的目录位置右键打开Git Bash Here(注意项目目录的位置)
然后在命令窗输入下面命令:
git pull origin master --allow-unrelated-histories
最后出现完成信息,则操作成功!
再次Push代码,可以成功进行提交!!!
这句命令的猜想是:允许不相关的历史提交。类似于try
解决方案 No.3
最简单粗暴的方法,就是直接将代码重新Clone下来,然后将你修改的代码,重新添加进去,再试着push一下。保证成功解决。
解决方案 No.4
最最最最重要的一个方法了,记得检查一下你需要push的项目,嗯,这是一项很重要的任务,如果你push的项目没有git push提交过,或者说 你push的项目跟你以前push过的项目搞混了,此时你就已经达到了超凡入圣的境界,“无招胜有招”。
嗯,我很开心,真的。