1.使用背景
在开发中,开发者可能对于某个功能的代码提交了多次,当需要将多个提交的commit合成一个commit的时候,就需要用到git rebase,俗称"变基"
2.实现方案
①git log 查看多次提交历史
git log
现在需要将最近3次提交合并为一次提交
②git rebase -i HEAD~3 或 git rebase -i commitHash (commitHash是commitId,是需要合并的commit的前一个commit节点的ID),这里表示上图中标识下划线的commitId
git rebase -i HEAD~3
或
git rebase -i bbdaa4254da0093740b4adbfe336c8c5d9fdbfdd
③将pick改为s或squash,然后保存退出
pick:简写p,表示启用该commitId
reword:简写r,使用该comitId,但是修改提交信息,修改后可以继续编辑后面的提交信息
edit:简写e,使用该commitId,停止合并该commitId
squash:简写s,使用该commitId,并将该commitId并入前一个commitId
drop:简写d,移除该commitId
④添加最新合并的提交注释(之前的可以删除),然后保存退出
出现以下效果则说明变基成功
再看看变基效果图
或更加暴力的方案
git reset commitId
git add .
git commit -m "xx"
git push -f
强制push,预防push过程中出现merge