git rebase 用法
在开发中经常需要基于一个分支来创建子分支,然后在子分支上进行开发,最后验证功能无问题才会将子分支合并到主分支上去。将子分支合并到主分支上一般有两种方案,分别为:
git merge
:这种合并会在对应的主分支上产生合并的提交,以及对应子分支的提交情况。git rebase
:这种合并是变基的操作,相当于将子分支的 commit 直接提交到主分支上,此时主分支上不会有合并记录和对应子分支的提交情况,看起来比较清爽。
现将子分支 dev
的代码以git rebase
的方式合并到主分支 main
上且不要留下合并的记录,此时相当于将子分支的所有 commit 提交到当前的主分支上。如下:
B
, C
为主分支上的提交,D
, E
为子分支的提交,现在要将子分支的两笔 commit 合并到主分支上。
初始时状态:
对子分支 dev 进行git rebase
之后,子分支的 commit 就被合并到主分支上,此时主分支的提交记录如下图所示:
git rebase
流程
# 1. 切换到主分支 main 上,其它分支的代码将被合并到该分支上
git checkout main
# 2. 变基操作,对子分支 dev 进行变基操作,相当于将其所有的 commit 都提交到主分支(当前所在的分支)上去
git rebase dev
# 3. 变基操作成功后,此时主分支上的代码选哟推送到远程代码仓中
git push
【注意事项】
git rebase
的分支是基于目标分支进行创建的。git rebase
可能会遇到冲突需要解决