【git报错】:git push报错提示: Updates were rejected because the remote contains work that you do

1、问题:

第一次提交一个项目工程到远程仓库,由于是远程有着本地仓库中没有的文件,导致git push的时候报错:
(如下2、初次提交远程仓库的两种操作,这次提交的是用<2-1>的方法(没有解决冲突出现的报错))

具体操作:

it init                              //初始化仓库
git add .                  			//提交到暂存区
git commit -m “first commit”        //提交到本地库
git remote add <远程仓库名> <远程仓库地址> //添加远程仓库链接
git push -u <远程仓库名> <分支名>   //把本地仓库的文件推送到远程仓
         

报错现象:

在这里插入图片描述

hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

====翻译:

提示:更新被拒绝,因为远程包含您所做的工作
提示:本地没有。这通常是由另一个存储库推送引起的
提示:指向相同的引用。您可能希望首先集成远程更改
提示:(例如,'git pull…')在再次推之前。
提示:详见“git push—help”中的“关于快进的说明”。

2、初次提交远程仓库的两种操作:

2-1 、直接在本地项目工程初始化git本地仓库,然后解决冲突,然后git push

前言:这种方式,如果是原来的项目的工程文件比较多,且懒得复制弄空白文件夹去克隆远程仓库到本地,用这种方式比较方便:

1、在项目工程根目录下右键打开git bash
在这里插入图片描述

2、git init命令去初始化一个git本地仓库,初始化完,会在根目录下自动新建一个.git
文件夹,这个就是本地库
在这里插入图片描述
3、

git add . //提交到暂存区

4、

git commit -m “xxxxx” . //提交到本地库

5、

git remote -v //查看远程仓库,这是新建的本地库,所以没有远程仓库
git remote add <远程仓库命名> <远程仓库地址> //添加远程仓库链接和远程仓库名

6、接下来是git push 步骤:
如果远程仓库为空,也就是远程仓库中不会存在着本地仓库中没有的文件,这时候直接git push
就很顺利push上去:

git push <远程仓库名> <分支名>

如果远程仓库中有着,.gitignore等文件,或者内容不同,这时候git push就会提示冲突,(其实怕的是后面push的人把前面的人push的内容覆盖掉),这时候,如果直接

git push <远程仓库名>  <分支名>

提示报错如<1、问题:>中所示,

这时候需要解决冲突,然后在git push上去;

2-2、从远程仓库上git clone 直接克隆下来,然后拷贝代码文件,然后git push

1、 新建一个空白文件夹!
2、git clone <远程仓库地址>
3、这时候远程仓库克隆到本地,自动添加了一个本地仓库.git文件夹
4、拷贝项目工程文件到.git文件夹所在路径下
5、git add .
6、git commit -m “备注” .
7、git push <远程仓库名> <分支名>

3、解决:

问题在于,远程仓库存在着本地仓库没有的文件,或者不同的改动内容,这时候要解决冲突,然后再git push就行了:

3-1、用git pull拉取远程仓库内容到本地,然后再提交:

//直接git pull会报错
git pull <远程仓库名> <分支名>

在这里插入图片描述

fatal: refusing to merge unrelated histories
翻译:
致命的:拒绝合并不相关的历史

这时候就需要加一行参数再git pull后面就可以解决:
git pull <远程仓库名> <远程分支名> --allow-unrelated-histories //合并两个独立仓历史

git pull <远程仓库名> <远程分支名>  --allow-unrelated-histories 		//合并两个独立仓历史

在这里插入图片描述
没有输入内容直接退出:
在这里插入图片描述
把远程仓库的文件.gitignore文件拉取到本地库中了:
在这里插入图片描述
再次git push提交成功了
在这里插入图片描述

  • 15
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"hint: updates were rejected because the remote contains work that you do hin"的意思是"提示:更新被拒绝,因为远程存储库包含您已经有的工作"。 当我们想要将本地的更新推送到远程存储库时,有时会遇到这样的错误提示。这个错误通常发生在我们尝试将本地分支的更改合并到远程分支时。提示意味着在我们推送更新之前,远程分支已经存在了我们本地已经有的一些工作。 出现这个问题的原因可能是由于其他用户或者团队成员在我们尝试推送更新之前,已经先行推送了一些更改到远程分支。这种情况下,我们的本地分支就会落后于远程分支的变更。为了避免冲突,Git会拒绝我们的推送。 解决这个问题的方法通常有以下几种: 1. 拉取最新更改:使用`git pull`命令,从远程仓库拉取最新的更改。这将合并远程分支的更改到我们的本地分支。 2. 解决冲突:如果`git pull`产生了冲突,在Git的冲突标记中手动解决冲突,合并我们的更改与远程更改。 3. 强制推送:如果我们明确知道我们的本地更改是合理的,并且我们不关心丢失远程更改,可以使用`git push -f`命令来强制推送本地更改。但是,这种方法可能会导致远程分支的代码丢失,因此应谨慎使用。 总结起来,出现"hint: updates were rejected because the remote contains work that you do hin"的错误提示,意味着我们的本地分支在推送之前和远程分支发生了冲突。我们可以通过拉取最新更改、解决冲突或强制推送来解决该问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值