在 Bitbucket 中创建拉取请求:错误 "Unrelated branches"
Creating a pull request in Bitucket: error "Unrelated branches"
我有一个小团队在一个存储库上工作,我要求我的每个队友创建自己的分支并在该分支上工作,他们都克隆了存储库,然后他们执行了以下命令:
git checkout -b BitPankaj
BitPankaj
是插图分支名称,他们开始在这个分支上工作并通过
上传到那里
git branch --set-upstream origin BitPankaj
现在在我的存储库中,我可以看到那些分支出现并且它们的提交也可见:
和分支机构:
现在他们每个人都在尝试创建拉取请求以审查那里的代码并合并到 master 分支。所以他们尝试做这样的事情:
但是它抛出了不相关分支的错误:
The following error(s) occurred saving this pull request: Unrelated branches
我们正在学习 git,帮我解决这个问题。
您应该能够使用 --allow-unrelated-histories 强制合并发生。
您应该可以像这样使用它:-
git pull origin branchname --allow-unrelated-histories
有关更多信息,请查看:-
这是因为 BitPankaj
分支是孤立分支。
这意味着分支 BitPankaj
不是从 master
分支创建的(如您所料),但可以使用 git checkout --orphan BitPankaj
代替。分支结构如下:
A---B---…---C master
D---…---E BitPankaj
您可以仔细检查您的本地存储库。 Update/pull 分支并将日志显示为图形:
git checkout master
git pull origin master
git checkout BitPankaj
git pull BitPankaj
git log --oneline --decorate --graph --all
#Or you can use gitk --all if you installed git bash
为了在 BitPankaj
和 master
之间创建拉取请求,您应该 更改基于 master
分支 [=55= 的 BitPankaj
分支].
根据 master
分支的最新版本(提交 C
)更改 BitPankaj
:
git rebase master BitPankaj
git push -f origin BitPankaj
那么提交历史会是这样的:
A---B---…---C master
\
D---…---E BitPankaj
根据 master
分支的旧版本(例如提交 B
)更改 BitPankaj
分支:
git rebase <commit id for B> BitPankaj
git push -f origin BitPankaj
那么提交历史会是这样的:
A---B---…---C master
\
D---…---E BitPankaj
然后你可以创建拉取请求以成功合并 BitPankaj
到 bitbucket 上的 master
分支。
我有一个小团队在一个存储库上工作,我要求我的每个队友创建自己的分支并在该分支上工作,他们都克隆了存储库,然后他们执行了以下命令:
git checkout -b BitPankaj
BitPankaj
是插图分支名称,他们开始在这个分支上工作并通过
git branch --set-upstream origin BitPankaj
现在在我的存储库中,我可以看到那些分支出现并且它们的提交也可见:
和分支机构:
现在他们每个人都在尝试创建拉取请求以审查那里的代码并合并到 master 分支。所以他们尝试做这样的事情:
但是它抛出了不相关分支的错误:
The following error(s) occurred saving this pull request: Unrelated branches
我们正在学习 git,帮我解决这个问题。
您应该能够使用 --allow-unrelated-histories 强制合并发生。
您应该可以像这样使用它:-
git pull origin branchname --allow-unrelated-histories
有关更多信息,请查看:-
这是因为 BitPankaj
分支是孤立分支。
这意味着分支 BitPankaj
不是从 master
分支创建的(如您所料),但可以使用 git checkout --orphan BitPankaj
代替。分支结构如下:
A---B---…---C master
D---…---E BitPankaj
您可以仔细检查您的本地存储库。 Update/pull 分支并将日志显示为图形:
git checkout master
git pull origin master
git checkout BitPankaj
git pull BitPankaj
git log --oneline --decorate --graph --all
#Or you can use gitk --all if you installed git bash
为了在 BitPankaj
和 master
之间创建拉取请求,您应该 更改基于 master
分支 [=55= 的 BitPankaj
分支].
根据
master
分支的最新版本(提交C
)更改BitPankaj
:git rebase master BitPankaj git push -f origin BitPankaj
那么提交历史会是这样的:
A---B---…---C master \ D---…---E BitPankaj
根据
master
分支的旧版本(例如提交B
)更改BitPankaj
分支:git rebase <commit id for B> BitPankaj git push -f origin BitPankaj
那么提交历史会是这样的:
A---B---…---C master \ D---…---E BitPankaj
然后你可以创建拉取请求以成功合并 BitPankaj
到 bitbucket 上的 master
分支。