如何从现有pr中删除子提交



这真的很傻,我昨天在branch_A上向master发出了pull请求。许多文件被更改了,我不想再添加更多的文件。我从分支a切换到分支b。我添加了我想提交的文件,并从branch_B推送。

在Github上,如果我想合并这个提交到master,它会显示我在一个单独的分支上做的pr和这个新提交都在一起。我不想把这个提交推到我以前的拉请求。我想既然我在一个新的分支上,它就会创建一个新的pull请求。

我应该删除提交并尝试不同的方式吗?我应该合并提交和pr吗?我应该按原样提交拉取请求吗?我应该尝试把这个提交推到Branch_A而不是master吗?有许多问题。

下面是cli的步骤:

  • git branch -vv (master,branch _a)
  • git checkout -b branch_Bgit add .
  • git commit -m"something cool">

任何帮助将是伟大的!

从branch_A切换到branch_B

创建branch_B,同时检出branch_A,导致branch_B基于branch_A:

树1

branch_B  // <- subsequent commits to branch_B
|
branch_A  // <- commits to branch_A
|
|
master

我不想把这个提交推送到我之前的拉取请求。

如果我没理解错的话,你宁愿这样做:

树2

branch_B  // <- commits to branch_B
|
|   branch_A  // <- commits to branch_A
| /
|
master

这里对branch_B的提交应用于master,不包括对branch_A的更改。

要从树1树2你需要做一个rebase*:

$ git checkout branch_B
$ git rebase master
$ git push -f # WARNING: this command will re-write the git history for this branch.
# If other's use this git repo, especially if they have checked out `branch_B` locally, they should be consulted first.

*使用rebase命令,您可以获取在一个分支上提交的所有更改,并在另一个分支上重播它们。

最新更新