git commit 规范提交信息,请阅读 Commit message 和 Change log 编写指南
背景:commit 提交历史
- 当前分支为:
test-rebase的log日志记录有4次提交,其中第2次和第3次是同一个功能开发,故可以合并
使用 git rebase 命令,采用交互式方式操作 commit
-
命令:
git rebase -i 466d4e9de63 440bc5a5ea-
git 命令介绍:
git rebase -i (startCommitId endCommitId]-i全称为:--interactive,即弹出交互式的界面允许用户操作commitstartCommitId为commit合并的起始 (不包含此commit)endCommitId为commit合并的终点(包含此commit)
-
弹出的交互式界面:
-
commit 常用操作命令介绍:
p:pick,保留该 commit <常用>r:reword,保留该 commit,但修改 commit 信息 <常用>s:squash,将该 commit 和 前面一个 commit 合并/糅合f:fixup,和squash模式相似,但是不保留该提交的注释信息
-
根据需要,将
commit前的命令更改为对应的操作
-
自动生成游离分支
- 执行完
rebase命令,会自动生成一个 游离分支
基于游离分支,创建一个 本地临时性 分支
- 执行命令
git checkout -b temp
在原来的分支,执行 rebase 命令
- 切回原来的分支
- 执行命令:
git rebase temp
-
此时会一步一步执行
patch提交- 如果没有产生冲突,则合并完成,删除
temp分支即可 - 如果产生冲突,则需要处理冲突
- 如果没有产生冲突,则合并完成,删除
处理 rebase 冲突
- 处理完毕冲突,如果有文件,则需要使用
git add命令添加,接着执行git rebase --continue命令,继续执行patch提交,此处 循环处理
- 使用
git rebase --skip跳过commit
帮助
终止 rebase
- 执行命令:
git rebase --abort