1. rebase变基
问题:
工作中我们一般是从master分支拉自己的开发分支开发,如果master分支被组长合并了其他同事的开发,也就是master分支ahead你的分支,我们这时一般不能直接提交自己的dev分支到远程提pr,需要先把master最新的变更合并到本地分支,怎么做呢?
merge肯定不行,这样提交时别人的变更提交者就是你,很不合理。这里使用rebase更合理。
rebase,直接翻译过来就是变基。通过rebase命令,我们可以改变一串commits的基点(父commit)。首先我们先来操作一遍这个命令,看看效果就知道这个命令是干啥的了。
假设我们的git历史是这样子的。我们在commit3这个地方开出了一个分支branch1用于开发,然后在branch1分支上开发并提交了两个commit(6和7)。同时其他分支合并到master分支导致master分支多了两个提交(4和5)。
这时我们执行以下命令: (注: 此时的活动分支是branch1)
(branch1) git rebase master
执行完命令后的git结构如下: