我在 Bitbucket 上有存储库(比如说 A)和分叉存储库 A-dev。3个月来一切都很好。但最近,当我尝试在 A-dev 中创建拉取请求时,它说:
无法合并不相关的
分支
为什么会发生这种情况以及如何解决?我该如何解决?
这意味着如果它试图合并,就会有合并冲突。您必须合并“回购 A”并解决冲突。然后推回 BitBucket,以便它可以关闭拉取请求。示例工作流程:
git remote add repo_a https://url.com/path/to/repo
git fetch repo_a
git merge repo_a/dev
# resolve conflicts
git commit -am "Merge in repo_a/dev and resolved conflicts"
git push origin dev
如果您从未在 Git 中处理过合并冲突,请查看这个SO question。
尝试一个:
git rebase origin/[BRANCH-NAME]
这是我的解决方案:
git checkout branchA
git pull origin branchB --allow-unrelated-histories
...并解决合并冲突。
在处理现有应用程序的新副本时,我遇到了同样的问题。
我将现有应用程序的新副本作为 zip 文件获取,然后将其解压缩到一个新文件夹中。
然后我只是将现有应用程序的旧副本的一些内容复制到现有应用程序的新副本的目录中。
之后,我删除了现有应用程序的旧副本,然后尝试将现有应用程序的新副本推送到Bitbucket 上现有应用程序的远程存储库。
然后它抛出了错误:
Unable to merge
Unrelated branches
这是我解决它的方法:
问题是我没有将现有应用程序的旧副本的.git
目录复制到新副本中。git 目录存储有关远程源存储库的信息。当我丢弃现有应用程序的旧副本时,此信息丢失了。
我所要做的就是从我的垃圾箱中恢复现有应用程序的旧副本,然后将目录复制到现有应用程序的新副本中。.git
这次我尝试推送到现有应用程序的远程源存储库,它工作得非常好。
另一种解决方法是从远程存储库中重新创建git clone
现有应用程序,然后将.git
目录从中复制到现有应用程序的新副本中。之后,我可以推送回远程存储库。
就这样。
我希望这有帮助