我有什么:
两个分支branch1
和branch2
用于不同的功能,在branch1
我推送5
提交并创建了拉取请求并等待代码审核。
然后我完成了branch2
中的新功能,并在第二个中推送了3
个新提交。
问题:
当我要从branch2
创建新的拉取请求时,我发现所有8
次提交都将添加到此请求中。出于某些原因,我可以要求仅从3
中提取branch2
。
我做错了什么?
答案 0 :(得分:1)
您可以尝试的选项是:
(I)完成对5
的{{1}}次提交后,将其推送到远程进行代码审核。
(II)结帐到branch1
,如果您输入branch2
,您应该会看到之前的git log
提交到5
。执行branch1
,这将使您的本地回购git reset --hard HEAD~5
提交回来。您无需担心永久丢失这些5
提交,因为它们可以在远程仓库5
上找到 - 您可以在必要时提取它。
(III)对branch1
进行更改,为branch2
创建新的请求,并将branch2
次提交推送到远程3
进行代码审核。现在,之前的branch2
提交将不会包含在您的新拉取请求中。
注意:当两个分支处理不同的功能并且不依赖于彼此的更新时,可以使用此选项。 我希望这回答了你的问题。如果您有任何问题,请告诉我。
此外,如果您希望分支在创建新分支时分开,请执行5
然后git checkout master
,以便从主分区创建git checkout -b branch2
; s历史,而不是branch2
或您的工作分支。然后分支提交将不会相互重叠,并将跟随主人。因此,在您的情况下,您将分别在branch1
后跟5
和branch1
提交3
次提交。