refusing to merge unrelated histories(AS项目推送至码云出错)

本文介绍了一种解决在使用Git推送代码时遇到的'unrelated histories'错误的方法。通过使用特定命令允许不相关的历史合并,可以顺利将本地更改推送到远程仓库。

推送的时候在最后一步push老是报这个错-refusing to merge unrelated histories

网上各种百度,好不容易找到一条修改方法,还发现没图。。

简直可怕,找不到在哪操作啊。。


参考:http://blog.youkuaiyun.com/lindexi_gd/article/details/52554159

利用git本地来关联项目


(1)首先,你出现这个错误就说明你已经做到了最后一步的push环节了。

        其次,你下载了git在本地。


(2)找到你的项目文件夹,在此文件夹上右键,选择Git Bash Here,之后会弹出一个弹出框,并在里面输入:git pull origin master --allow-unrelated-histories,

出现下图,就可以关闭Git Bash了。


(3)在android studio内重新push一下项目就可以了。出现“Push successful”的提示信息



 (4)最后去码云检验一下是否传上去了。完成~



在使用 Git 进行分支合并时,有时会遇到 `fatal: refusing to merge unrelated histories` 错误提示。此错误通常出现在尝试将两个没有共同祖先的历史记录进行合并时,Git 默认阻止这种操作以防止意外的数据丢失或混乱[^2]。 ### 解决方法 #### 1. 使用 `--allow-unrelated-histories` 参数 Git 提供了一个参数 `--allow-unrelated-histories`,允许用户在明知风险的情况下合并两个不相关的历史记录。这个参数适用于需要将两个完全独立的项目历史合并的情况[^3]。例如: ```bash git checkout dev git merge --allow-unrelated-histories master ``` 上述命令切换到 `dev` 分支,并尝试将 `master` 分支的历史合并到当前分支中,即使这两个分支的历史是不相关的[^4]。 #### 2. 使用 `--rebase` 参数 另一种解决方式是使用 `--rebase` 参数进行变基操作,这可以使得提交历史更加线性化,有助于保持项目的清晰历史记录。但是需要注意的是,变基操作可能会导致提交历史的变化,因此在团队协作环境中使用时需格外小心[^2]。示例命令如下: ```bash git checkout dev git rebase master ``` 此命令将 `dev` 分支上的更改重新应用到 `master` 分支的最新提交之上,从而实现历史记录的整合[^2]。 #### 3. 检查远程仓库配置 如果问题出现在尝试从远程仓库拉取代时,检查 `.git/config` 文件中的 `[remote "origin"]` 配置是否正确指向了预期的远程仓库地址。有时候,错误地配置了远程仓库会导致尝试合并不相关的历史记录[^1]。 #### 4. 初始化新仓库并添加远程 对于首次克隆仓库后无法正常拉取代的问题,可以考虑初始化一个新的本地仓库,然后添加远程仓库地址并获取数据。这种方法适用于仓库初始化阶段的问题解决[^1]。具体步骤如下: ```bash git init git remote add origin <远程仓库URL> git fetch ``` 通过以上任一方法,大多数情况下都可以解决 `fatal: refusing to merge unrelated histories` 错误。选择合适的方法取决于具体的场景和需求,同时也要考虑到操作可能带来的影响,如历史记录的改变等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值