What is git rebase

Author Avatar
go3k 1月 18, 2018

一直以为git rebase是一个非常复杂日常用不到的操作,然而事实并不是这样。git中有两个操作可以进行分支合并,一个是git merge,一个是git rebasegit merge很简单,很容易理解,就是把一个分支合并到另外一个分支,合并完成后会产生一个merge commit

关于git rebase不是特别直观,先举例说明:

//假设我们有一个master分支
//我为了开发feature创建feature分支
git checkout -b feature
//进行了一系列的修改和提交
git commit -m 'a'

//此时其他同事有提交到master分支,我们完成工作要提交到master
git checkout master
git pull origin master
git checkout feature
//feature分支rebase到最新的master的HEAD
git rebase master
//合并回到master分支
git checkout master
git merge feature

提交记录的图形如下:

rebase

git rebase可以理解为,把当前分支的基础节点rebase到一个新的位置,从而达到当前分支的修改是其父分支快进效果。这样当我们把当前分支merge回去的时候可以直接快进,父分支是一个清晰的提交历史,不会产生merge commit

对git的认识还是不够系统。。。这么基础的操作居然一直没有理解,还是要多学习一个。

参考文档

1. atlassian tutorial: git rebase