git高级浅入之git rebase

目录

- rebase的几个操作

- rebase与merge的比较和实际操作

- 结合动图加深理解rebase

rebase的几个操作

  • git rebase [分支名]
  • git rebase --continue 继续rebase
  • git rebase --abort 放弃本次rebase

rebase与merge的比较和实际操作

相比较于git merge,我们在初级篇已经学习过merge操作,每次使用merge合并分支时候,会将两个分支又合到一条分支上,这样造成的问题就是在一个git分支树上好多交叉,如果你希望commit的时候不要出现分支,可以使用rebase替代
我们新建一个git项目,然后创建一个空的test.js文件并commit,这时候的分支图是这样的

接下来我们在master分支修改test.js文件并commit,然后创建一个分支branch1,并在branch1上修改test.js文件,并提交。然后我们看下分支图

如果这时候我们在master分支合并branch1的话

git checkout master
git merge branch1

打叉了!打叉了!打叉了!
ok,我们回退到上一个版本,回退后分支是这样的

试下使用rebase的效果,进行如下操作

git checkout branch1
git rebase master


报了个错,说rebase的时候有冲突,那么我们vim test.js冲突的地方修复,然后执行下面

git add .
git rebase --continue // 继续rebase (同时普及一下另外一个git rebase --abort 放弃本次rebase)

这个时候分支是这样的:

然后我们回到master,去merge branch1(这样的目的是因为能从上图看到,master所指向的位置靠后了,要将其更新到最前面)

git checkout master
git merge branch1

猜你喜欢

转载自www.cnblogs.com/fe-linjin/p/10775987.html