当发起一个pr后,发现没有达到预期,会提交多个commit修复问题,这样的结果会造成commit碎片化,而coomit记录压缩(squash)就是为了解决这样的问题。
查看提交日志
git log
# 进入查看模式后,按q退出
此步的目的是为了查看需要合并哪些提交记录
发起变基
git rebase -i HEAD~<number>
# example : git rebase -i HEAD~4
# HEAD~4的含义是从头部开始追溯4条记录
发起变基后,会进入编辑模式
将需要压缩的commit前面的pick
改为squash
不能全部squash,至少保留一个pick
:wq #保存后进入下一个编辑模式查看变更详情
:wq #继续保存
此时使用 git status
可以查看当前本地仓库状态
解决冲突并保存修改
git pull
# 拉取之后如果有冲突的话,解决冲突后,保存修改
完成变基操作bing并提交远程分支
# 取消变基:git rebase --abort
# 如果没有冲突打断变基的话,不用执行continue
git rebase --continue
git push -f origin branch_name
# 操作完git push 后,会看到压缩情况的信息