Git 报错 Updates were rejected because the remote contains work that you do
这个报错实在是让我受不了了,每次不管是‘命令行’ 还是 idea 提交都会出现这样让人心态爆炸的问题。然而每次出现又重复的查找解决办法,这次实在受不了了,便有了这篇文章,希望它也能帮助到心态爆炸的你。

1、命令行出现这种情况
命令行执行会出现这样的问题是因为错误的提交过程:

git init //初始化仓库
git add .(文件name)                         //添加文件到本地暂存
git commit -m “first commit”                //添加文件描述信息
git remote add origin    远程仓库地址        //链接远程仓库
git push -u origin master                   //把本地仓库的文件推送到远程仓master分支

这样就出现了标题提示的错误信息,如下图:

git remote http 不是一个git命令_命令行

经过多次出现同样的问题,我已经对这个问题的原因了如指掌了,这是因为在本地新建库后,与远程仓库的内容不一致导致的(远程仓库有一些内容本地没有)。问题了如指掌,但是解决方法每次都记错,所以还是记录一下吧。

正确的提交过程如下:

git init                           //初始化仓库
git add .(文件name)                //添加文件到本地 
git commit -m “first commit”       //添加文件描述信息
git remote add origin  远程仓库地址 //链接远程仓库 
git pull origin master             // 把本地仓库的变化连接到远程仓库master分支
git push -u origin master          //把本地仓库的文件推送到远程仓库master分支

在执行上面第五步的时候可能会出现新的错误,也是常见的错误了,错误信息如下:

git remote http 不是一个git命令_git_02

不要慌,这是因为文件版本没有及时更新,两个分支是两个不同的版本,具有不同的提交历史,决绝方式就是在原本的命令之后加上一句命令即可:

git pull origin master --allow-unrelated-histories

然后有的情况下,输入上面的命令就能解决问题,有的情况下,他又会报新的错误,如下:

git remote http 不是一个git命令_命令行_03

网上查了解决办法是真的麻烦,但是原因知道了,就是有文件冲突,没有更新,那就好办了,重新输入以下命令问题解决:

git remote http 不是一个git命令_git_04

2、idea出现同样的报错,解决方式同上
输入命令的地方在 idea 的下方,有一个 terminal ,点击之后,即可输入上面的命令。