Git 分支git-merge合并和git-rebase变基的使用
git merge <branch>
A---B---C topic
/
D---E---F---G master
$ git checkout master
$ git merge topic
A---B---C topic
/ \
D---E---F---G---H master
git rebase <upstream>
A---B---C topic
/
D---E---F---G master
$ git checkout topic
$ git rebase master
或
$ git checkout master
$ git rebase master topic
A’--B‘--C’ topic
/
D---E---F---G master
$ git checkout master
$ git merge topic
D---E---F---G---A‘--B’--C‘ master topic
git rebase --onto <upstream>… <upstream>
例子-1
o---o---o---o---o master
\
o---o---o---o---o next
\
o---o---o topic
$ git rebase --onto master next topic
o---o---o---o---o master
| \
| o‘--o’--o‘ topic
\
o---o---o---o---o next
例子-2
H---I---J topicB
/
E---F---G topicA
/
A---B---C---D master
$ git rebase --onto master topicA topicB
H'--I'--J' topicB
/
| E---F---G topicA
|/
A---B---C---D master
例子-3
一定范围的提交也可以通过重新设置基准来删除。如果我们有以下情况:
E---F---G---H---I---J topicA
$ git rebase --onto topicA~5 topicA~3 topicA
E---H‘---I’---J‘ topicA
变形看成如下结构就好理解了:
H---I---J topicA
/
F---G topicA~3
/
E topicA~5