我想对我准备对open-source project进行的某些更改进行PR。我已经分叉了存储库,并提出了changes来使应用程序运行。这些更改(我们将其称为“提交#1”)特定于我的构建,因此它们应仅存在于我的fork上,而不包含在对主存储库的任何拉取请求中。第二组更改(提交2)是PR中需要包含的内容。
为了成功地构建和运行代码,我在开发Commit#2时必须具有Commit#1。因此,我将Commit#1包括在我打算从中进行PR的功能分支中。准备好将提交#2提交到主仓库中后,我如何制作仅包括提交#2但不包括提交#1的PR?
我试图执行以下步骤:
已观察:我的fork中的功能分支包含两个提交,因此我不能将其用于PR,因为它包括仅用于我的fork的更改(提交#1)。>
所需:我希望功能分支仅包含Commit#2,以便可以将其用于PR。
我应该怎么做才能仍然能够在本地构建(即,对提交1进行必要的更改),但是创建仅包含对提交2进行的更改的PR?
答案 0 :(得分:1)
您可以基于上游创建一个新分支,然后cherry-pick
您要向上游发送到该分支的一个提交。
git checkout -b for-pull-request origin/master
git cherry-pick <Commit #2 SHA>
git push origin for-pull-request
然后使用for-pull-request
分支发出拉取请求。