前言
最近遇到一个技术团队的 dev 环境分支错乱,因为是多人合作大家各自提交信息,导致出现很多交叉合并记录,让对应 log 看起来非常混乱,难以阅读。
举例说明
- 假设我们有一个项目,最初develop分支有 3 个提交记录,分别是A、B、C,如下所示
- 此时,我们创建了一个feature分支用于开发新功能,feature分支基于A提交创建,并且有D、E、F三个提交记录,此时的分支情况如下:
- 如果不进行rebase操作,直接将feature分支合并到develop分支,Git 会自动创建一个合并提交,这样提交历史会变得复杂,呈现出非线性的结构,如下所示:
这种情况下,提交历史中会出现许多交叉的合并记录,如果同时并线的不只是一个 feature 分支,在就会并行好几个线,非常混乱。
- 而此时如果我们现在 feature 分支上进行 rebase1操作,则会呈现如下效果。
可以看到,feature分支的提交历史变得更加线性,基于develop分支的最新状态进行了调整。
- 此时再将feature分支合并到develop分支,就会简单很多,提交历史也更加清晰、整洁,如下所示:
这样就更加一目了然了,在进行异常的问题定位更加容易确定问题。
Tips
可以使用以下命令查看你们当前团队的分支情况
# 可以使用
git log --graph --oneline
如果主干分支出现以下情况,就可以考虑使用 rebase 变基操作了。
在 feature 分支(开发分支)上执行 git rebase develop (主干分支)。 ↩︎