1. rebase的作用
使代码提交记录变的简洁
2. rebase应用
2.1 场景1:
一般情况下,对于开发人员而言,代码提交记录只有最初和最后记录存在作用,中间的记录可以舍去。此时就可以使用
rebase
将多个提交记录整合为一个提交记录。假设master存在四条记录:
此时想要将v2到v4这三条记录进行合并,使用
git rebase -i HEAD~3
,即从最近的记录开始找三条记录进行合并。输入命令后出现下图:
此时将第二行和第三行的
pick
改为s
(s为下述Commands中命令)。第二行改为s
表示将v3合并到v2这个记录,第三行改为s
表示将v4合并到v3这个记录(因为两行都改为s
所以表示将v3和v4合并到v2记录) 修改完成并保存退出后,会出现下图:
此时可以删除v2到v4中间的内容,重新写上版本的提示信息并保存退出:
tips:
- 假设v2已经提交到远程仓库,最好在本地就不要将v2和之后的记录进行合并
2.2 场景2:
假设当前项目有
master
和dev
分支,并且进行了合并。此时查看提交记录发现记录十分的冗余:
git log --graph
:可视化查看提交记录
- 使用
git log --graph --pretty=format:"%h %s"
:简要的可视化查看记录
首先切换到
dev
分支,然后执行git rebase master
,之后再切换回master
执行git merge dev
。此时查看提交记录会发现不会出现分叉(红色部分):
3.注意事项
假设处于
master
时修改了1.py文件并进行了add
和commit
,切换到dev
分支也修改了1.py文件并进行了add
和commit
,再使用git rebase master
就会产生冲突:
此时需要去解决冲突并且使用
git rebase continue
继续完成rebase
,在使用该命令前需要执行git add 1.py
4. 参考
https://www.bilibili.com/video/BV17r4y1K7HB?p=17–>https://www.bilibili.com/video/BV17r4y1K7HB?p=19