使用上游分支重新设置本地分支

Rebase local branch with upstream branch

分叉回购后的一系列事件:

  1. 创建了分支
  2. 进行了一些更改
  3. 已将我分支的 PR 提交给上游 master
  4. 仓库所有者在他的仓库上创建了一个分支并将我的 PR 与其他一些更改合并。

我还有 PR 方面的工作要做,但现在我必须将我的分支重新定位到 repo 所有者创建的分支上,以便在我的分支可以与他的 master 合并之前测试一些东西。

如何使用在远程创建的分支为本地存储库中的分支变基?我基本上希望我的分支之一与上游仓库中的分支之一相同(不是主分支)。

对于术语可能使用不当,提前致歉。

如果您想将您的分支与上游同步,并且您在本地确实没有要保留的提交,则更容易重置:

git reset --hard upstream/the_branch

你也可以直接指定一个sha1。

How can I rebase the branch in my local repo with the branch created in the remote? I basically want one of my branches to be the same as one of the branches in the upstream repo (not master).

通常的方式:

git rebase upstream/the_branch

这将更改您在 PR 中使用的分支的历史记录。 不过没关系。由于您的 PR 尚未被接受,并且正如您所说,它需要更多工作,因此可以重写其基础分支, 完成后,使用:

git push -f origin yourbranch_for_pr

作为旁注, 在此之后,在 PR 中,您将看到在 rebase 之前和之后所做的所有更改,如果这些更改尚未合并到 master,还会看到 repo 所有者所做的其他更改。如果 repo 所有者先将他的更改合并到 master 中,那么您的 PR 将只包含您的工作,这将是理想的。