使用“基于git的基础”来合并两个功能分支?

时间:2018-12-06 08:34:17

标签: git

我从主人那里做了一个功能分支:

git checkout -b branch1
+ commits to this branch
git push

后来有人在GitHub上建立了第二个分支,然后我获取了该分支并对其进行了编辑:

git checkout branch2
+ commits to this branch
git push

我希望我们可以将branch2放入master,然后将最新的master(带有branch2)放入我的branch1。

但是现在我被告知他们不希望master本身拥有branch2,而是应该将branch2放入我的branch1中,并在branch1完成时将branch2作为branch1的一部分推送。

所以我正在尝试将branch2放入我的branch1中。我尝试以下...

git checkout branch1
git rebase --onto branch2
git log

...但是git log显示该变基获得的是分支2的原始版本,而不是我所做的其他分支2更改。

如何将整个当前的branch2放入我的branch1中?

如果我使用git merge而不是git rebase,那么它将起作用(即,获取在branch2中所做的所有提交...并将它们添加到branch1的头部):

git checkout branch1
git merge branch2
git log

我不明白为什么git rebase没有获得所有branch2提交,而只有第一个提交?

1 个答案:

答案 0 :(得分:1)

当我将一个分支建立在另一个分支上时,我总是遵循以下步骤:

  1. git pull
  2. 要重新建立分支的git checkout
  3. git rebase -i 起源/ targetBranch

如果您的本地存储库已更新,请检查分支是否与源位于同一位置,或在rebase命令中使用前缀 origin /