我们在多个分支上同步工作的时候,会经常遇到需要同步代码的情况,一般的操作是直接merge其他分支代码到自己分支,这种操作虽然简洁,但是会在主分支的提交记录上产生互相交叉的多条提交记录,不方便查看,而git rebase则可以完美解决这个问题,下面一起看看具体操作:
首先我们先模拟出需要同步代码的场景,
1、新建分支feat-branch
2、然后在master上提交几次代码,模拟两个分支同步工作
3、在feat-branch分支上提交几次代码,修改同一个文件,模拟代码冲突
此时如果我们要从feat-branch发起merge请求到master, 会提示需要先同步代码,此时我们就可以使用git rebase代替merge了
git rebase 功能一:合并提交记录
我们可以在合并之前把自己的提交记录进行合并,可以使log记录更干净
操作之前先备份代码,最后提交的时候需要谨慎操作
- 查看log中需要合并的记录的下一条记录,使用git rebase命令:
git rebase -i c7cb662
-
按insert按键进入编辑模式, 将不需要保留的记录pick改为s,
修改完成,按Esc退出编辑模式,输入:wq保存退出
-
修改完记录后输入:wq退出
-
再次查看log记录,发现记录已经被合并,看起来清爽了很多:
git rebase 功能二:变基
运行命令:
git rebase master
如果出现代码冲突,则需要先解决代码冲突
解决完成后,运行命令
git rebase --continue
此时显示已经变基成功,最后使用 git push -f 强制提交代码(谨慎操作)
查看记录可以看到master的记录已经同步成功,