比如说,从我最初的主人那里,我对它做了某些更改,并在t1时提交了更改,然后将其推送到github(称为branchA)。然后我做了一些其他的更改,并在t2时提交了它。我不想把它推到branchA,但我想把它推到另一个名为branchB的分支。
是否可以将branchA列为branchB的先决条件,以便在我执行拉取请求时,branchB中的差异不包括t1之前提交的更改,换句话说,branchB中的差异应仅显示branchAbranchB之间的差异?
Bazaar/Launchpad提供了这个选项,但我在Github中找不到类似的功能。(我是新来的git,所以也许这不是他们在Github中做的事情?)

最佳答案

这意味着你有:

Local Repo                  Upstream (GitHub Repo)

 .--.--o--x--y branchA   <====> o--o--x branchA
(master)

但你想:
.--.--o--x branchA      <====> o--o--x branchA
(mast) \
        y branchB        => you can push now

这意味着您需要首先调整到o后面的xt1)上,以便在将其推到您的叉子上之前在本地构建branchB
git checkout branchA
git branch branchB                  # creates branchB where branchA currently is
git reset --hard origin/branchA     # reset branchA to x
git rebase --onto master x branchB

07-24 12:48