This is usually caused by another repository pushing:refusing to merge unrelated histories

 事情是这样的,我先是在一个git好了的目录连接了一个仓库创建了一个项目并发布到了那个仓库上,然后我又在idea中创建了一个更完整的项目,又连接到了这个git仓库中(俩项目名称相同),然后就想发布上去,结果add ,commit完成之后要push时,出现了这一幕

error: failed to push some refs to '我相关联的git仓库'
hint: Updates were rejected because the remote contains work that you do
!	refs/heads/master:refs/heads/master	[rejected] (fetch first)
Done
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.

根据它的提示我大概知道是冲突了因为之前提交的并不完整,我的本意是想用这个来覆盖之前的,于是我就想先pull下来解决冲突(事实上我pull下来不会影响我这个项目因为我在之前的目录下把不完整的项目给删除了,这个时候我的仓库其实是空的,但是会遗留下git自己的备份数据比如备份的版本log),结果我在pull的时候发生了如下一幕

warning: no common commits
remote: 对象计数中: 101, 完成.        
remote: 压缩对象中: 100% (87/87), 完成.        
remote: Total 101 (delta 43), reused 0 (delta 0)        
Receiving objects: 100% (101/101), 17.27 KiB | 0 bytes/s, done.
Resolving deltas: 100% (43/43), done.
From 我相关联的git仓库
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
fatal: refusing to merge unrelated histories
说是拒绝让我合并不相关的历史

解决方案:

执行如下命令

git pull origin master --allow-unrelated-histories

然后就会解决冲突,如果说你的仓库项目跟你要上传的项目有冲突那你就解决冲突再push(前面说了我的仓库其实是空的只保留了git自己的log)

然后再push上去就成功了

Counting objects: 132, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (80/80), done.
Writing objects: 100% (132/132), 22.17 KiB | 0 bytes/s, done.
Total 132 (delta 56), reused 57 (delta 33)
remote: 处理 delta 中: 100% (56/56), 完成.        
To 我关联的仓库	bdd1ac7..30c6958
Done

git新手做如上笔记
### 回答1: 这个提示的意思是你本地没有这个东西,通常是由于另一个仓库推送导致的。这可能是因为你在本地的仓库中没有相应的文件或分支,但是在另一个远程仓库中有相应的文件或分支,并且已经被推送到了远程仓库。要解决这个问题,你需要先拉取远程仓库中的相应文件或分支,然后才能在本地使用它们。可以使用命令"git pull"来拉取远程仓库中的更新。 ### 回答2: 当我们在使用 Git 进行版本控制时,有时候会出现这样的提示:not have locally. this is usually caused by another repository pushing。这个提示是什么意思呢? 其实这个提示的意思是,我们本地的一个分支在远程仓库中存在一个更新的版本。这个更新的版本可能是由另一个人在另一个计算机上提交的。这个提示的原因是另一个仓库推送了更新到相同的分支,并且我们尝试从远程仓库中拉取更改时出现了冲突。 那么应该怎么办呢?我们可以使用以下命令来解决这个问题: 1. git fetch 首先,我们可以使用 git fetch 命令将远程仓库中的最新代码更新到本地。这个命令只会更新代码,并不会合并代码。所以,我们需要运行下一步命令,将代码合并到本地分支中。 2. git merge 接下来,我们可以使用 git merge 命令将远程仓库中的代码合并到本地分支中。这个命令会自动解决冲突,并将代码合并到本地分支中。如果出现冲突,我们需要手动解决冲突并添加提交信息。 3. git pull git pull 命令是上面两个命令的结合。它会自动从远程仓库拉取最新代码并将其合并到本地分支中。如果出现冲突,我们需要手动解决冲突并添加提交信息。 以上是解决 Git 提示 not have locally. this is usually caused by another repository pushing 的几种方法。在使用 Git 进行版本控制时,我们需要注意及时更新代码,并解决代码冲突。这样可以保障项目的稳定性和开发效率。 ### 回答3: 当我们在进行 Git 操作时,有时会遇到这样的提示:not have locally. this is usually caused by another repository pushing。这个提示是什么意思呢? 这个提示的意思是,我们在进行 Git 操作时,尝试从远程仓库进行拉取操作,但是本地仓库中没有对应的文件。而这种情况通常是由于另一个仓库已经进行了推送,导致本地仓库与远程仓库之间出现了不同步的情况。 例如,我们在本地仓库中创建了一个新的文件,并将其提交到了本地 Git 仓库中。但是,在这之后,另一个开发人员已经将同样的文件推送到了远程仓库中,并且我们没有进行及时的拉取操作。这样一来,远程仓库中的文件与本地仓库中的文件就会发生不同步的情况,导致在进行拉取操作时出现了“not have locally. this is usually caused by another repository pushing”的提示。 为了解决这个问题,我们需要先使用 git fetch 命令从远程仓库中获取最新的代码,并将其合并到本地仓库中。如果在 git fetch 后仍然出现提示,可能是因为在更新代码之前其他人已经进行了代码推送。这种情况下,我们需要使用 git pull 命令进行代码合并。 总之,当我们在进行 Git 操作时,遇到“not have locally. this is usually caused by another repository pushing”的提示时,一定要及时从远程仓库拉取最新代码,并进行合并操作,以保证本地仓库与远程仓库之间的数据同步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值