如何使用git rebase合并分支?

git merge和git rebase都可以用来合并分支,merge是将commit合并后生成一个新的commit

git rebase的操作也是合并,比如我想将A分支合并到master分支上,用merge操作是这样:
先切换到master分支:执行git merge A
用rebase是这样:
先切换到A分支:执行git rebase master,此操作是改变A分支commit基点连接在master的末端。然后再切换到master分支 执行git merge A。然后git log后看到的commit记录都是在一条线上的,不会分叉。

有大神说在执行rebase的时候不要在master分支上执行,因为会造成commit的丢失,但是我在A分支上执行rebase后还是要到master上执行一个merge操作,这样岂不是相对于merge又多了一步?只是为了查看log记录好看一点么?

可能问题表述的不是很好,请大神指点一下rebase的操作!!!

阅读 9.4k
1 个回答

我的理解是这样的:

  1. 从 master 拉出 A 分支
  2. 在 A 上开发 提交多个 commit ;
  3. 当 master 有新 commit 的时候 在 A 中用 rebase 把 master 新 commit 合过来, 并且保证在 A 新增的commit 会排在 log 的最后 , 这个操作在 A 的开发阶段可以使用多次.
  4. A 开发完成, 在 master 上用 mergin 合并 A, 不会自动产生合并分支的 'commit'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题