提取请求包含来自主

时间:2018-07-31 16:00:16

标签: git github pull-request

我一周前从师父那儿分出来了。

master -> my_branch_1

这一次,我已经对my_branch_1进行了提交,并且还多次基于origin/master进行了跟踪。

分支机构ATM的状态(已概念化)

commit0
master -> my_branch_1

master:
   commit1
   commit3
   commit10

my_branch_1 (commits from master are marked with *)
   commit1*
   commit2
   commit3*
   commit4...commit9
   commit10

当我尝试将PR重新打开到master时出现问题。公关日志显示所有提交1...10,而我希望只有提交2, 4...9

  1. 我做错了什么?
  2. 我该如何解决?

-编辑-

在评论中对origin讨论的澄清。目的是将master上发生的提交接收到我的分支中。

这是理想的结果,因为我想尽可能地靠近“ master”,以便与其余代码库保持同步。

我不希望让master中已经存在的这些提交出现在我正在master中进行的PR中

-编辑2-

此问题与托管在GitHub上的私人仓库有关。不是分叉的仓库。

1 个答案:

答案 0 :(得分:0)

  

我做错了什么?

听起来您是从origin/master撤离而不是重新定级,至少是为了获得commit3

  

我该如何解决?

首先,从分支创建备份分支,以防万一。您只需在当前分支中创建一个新分支即可。例如,如果您正在工作的分支机构中,则可以:

git checkout -b my_branch_1_backup

创建一个新分支,然后checkout回到您的工作分支:

git checkout my_branch_1

第二,再次调整基准。我将从做一个交互式的变基开始,然后删除不需要的提交。使用-i标志进行交互式变基,例如:

git rebase -I commit1

这将为您提供可以编辑的commit1的提交列表,例如:

pick commit2
pick commit3
pick commit4

,依此类推。如果您不想使用commit3(因为它已经在master中),请将pick commit3更改为drop commit3。编辑器中的注释中将列出其他选项。修正提交列表之后,保存并退出编辑器,然后执行以下操作:

git log

您应该看到日志反映了您的更改。

最后,您可以基础到origin/master,这将使git在master中获得任何新的提交,然后将您的提交添加到master的提交之上:

git rebase origin/master

再次检查日志,您应该在日志中看到master的提交,但是要在分支中添加的提交之前。

此时,您的拉取请求应仅包括您在分支中添加的提交。