我已经分叉了一个存储库 - > 创建了一个分支A - > 进行了提交并将更改推送到 - > 然后我从分支A发出拉取请求。 - > 分支A合并了。
现在,我创建了分支B并将提交推送到 - > 从分支B发出了另一个拉取请求,但是这个拉取请求显示了从分支A开始的提交历史记录。只想在其中显示分支B的提交。
答案 0 :(得分:1)
通常,如果branchA的PR被批准(默认合并策略),当您为branchB创建新PR时,新PR将仅显示branchB的初始提交。正如我在下图中提交的那样。
A---B---C branchA
/
D---E---F---G master
在branchA的PR被默认合并策略批准后:
I branchB
/
A---B---C branchA
/ \
D---E---F---G---H master
但是分支A的公关被壁球合并战略批准,当您为分支B创建新PR时,它将显示branchA和branchB的所有历史记录因为branchA并没有真正合并到master分支中。如下图所示,提交A,B,C,我将在分支B的新PR中显示:
I branchB
/
A---B---C branchA
/
D---E---F---G---H’ master
如果您不希望新PR显示有关branchA的历史记录,您可以将branchB(git rebase --onto master branchA branchB
)重新绑定为master并创建PR以将branchB合并为master。
A---B---C branchA
/
D---E---F---G---H’ master
\
I’ branchB
答案 1 :(得分:0)
根据你的描述,听起来你从分支A的任何地方开始创建分支B.如果你只想保存一个提交,那么解决这个问题的最简单方法可能就是挑选。
首先,保存旧分支B
:
git branch -m B oldB
然后,切换到主人:
git checkout master
更新您当地的主分行:
git pull --ff-only
从当前主人创建一个新分支B
:
git checkout -b B
Cherry - 从oldB
中选择一个提交:
git cherry-pick oldB
继续推送和发出拉取请求等等。
请注意,如果您在oldB
上有多个提交,那么您将不得不做多个樱桃选择,或者一个rebase(可以一次完成整个提交序列)。