拉取请求包含我在其他分支上的提交?

Pull request contains my commits on other branch?

我知道这个不断变化的分支基础技巧,但它不起作用,来自这个问题:GitHub pull request showing commits that are already in target branch

就我而言,在切换到分支之前,我正在从我工作的其他分支获得我的提交。我该如何解决这个问题?

一个相对简单的解决方案是从 master(或您要合并到的分支)创建一个完整的新分支,然后通过一个来自你的旧分支。然后您需要使用原始分支名称强制推送到 github。

git checkout -b new_attempt origin/master
git cherry-pick <commit1>
git cherry-pick <commit2>
...
git push --force origin new_attempt:mybranch

其中 mybranch 是您用于此 PR 的分支名称。

如果提交太多,您可以尝试使用 --onto 选项进行变基。

git rebase --onto origin/master <base_commit> mybranch
git push --force origin mybranch

其中 <base_commit> 是您要从 PR 中排除的最后一次提交。变基可能有点棘手,所以请备份并阅读 git-rebase docs