Rebase本地分支与上游分支

时间:2016-08-05 21:00:43

标签: git github version-control rebase branching-and-merging

分配回购后的事件链:

  1. 创建了一个分支
  2. 做了一些改变
  3. 我的分支机构提交给上游大师的公关
  4. Repo所有者在他的存储库中创建一个分支,并将我的PR与其他一些更改合并。
  5. 我仍然有关于PR的工作,但现在我必须在我的分支可以与他的主人合并之前,在repo所有者创建的分支上重新设置我的分支以测试一些东西。

    如何使用在遥控器中创建的分支来修改本地仓库中的分支?我基本上希望我的一个分支与上游仓库中的一个分支(不是主分支)相同。

    提前为可能使用不当的术语道歉。

2 个答案:

答案 0 :(得分:4)

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

git reset --hard upstream/the_branch

您也可以直接指定sha1。

答案 1 :(得分:4)

  

如何使用在遥控器中创建的分支来修改本地仓库中的分支?我基本上希望我的一个分支与上游仓库中的一个分支(不是主分支)相同。

通常的方式:

git rebase upstream/the_branch

这将更改您在PR中使用的分支的历史记录。 但那没关系。由于你的PR还没有被接受,并且你说它需要更多的工作,所以重写它的底层分支是可以的, 当你完成时,用:

git push -f origin yourbranch_for_pr

作为旁注, 在此之后,在PR中,您将看到在rebase之前和之后所做的所有更改,以及repo所有者所做的其他更改(如果这些更改尚未合并到master中)。如果回购所有者首先将他的更改合并到master,那么这将是理想的,然后您的PR将仅包含您的工作,这将更加清晰。