1.直接删除.git隐藏文件
2.重新初始化项目
git init
3.将项目提交
用idea
如果遇到以下情况
关于git提交代码报错:Push to origin/master was rejected
不管怎么样权限是第一位,首先要有push权限,没有push权限,其他的都不行
经过一段惊心动魄的战斗之后,终于将代码改成了自己想要的样子了,此时,万事俱备只欠东风。只需要将代码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过的项目搞混了,此时你就已经达到了超凡入圣的境界,“无招胜有招”。
嗯,我很开心,真的。
git pull的时候发生冲突的解决方法之“error: Your local changes to the following files would be overwritten by merge”
今天在使用git pull 命令的时候发生了以下报错
目前git的报错提示已经相关友好了,可以直观的发现,这里可以通过commit的方式解决这个冲突问题,但还是想看看其他大佬是怎么解决这类问题的
在网上查了资料和其他大佬的博客,得到了两种解决方法:
方法一、stash
1 git stash 2 git commit 3 git stash pop
接下来diff一下此文件看看自动合并的情况,并作出相应修改。
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
方法二、放弃本地修改,直接覆盖
1 git reset --hard 2 git pull
3 git pull origin master --allow-unrelated-histories
4 git push
就可以直接提交了