git rebase -i 的用法
git rebase -i(交互式变基)是一个强大的 Git 命令,允许你以交互方式修改提交历史。以下是详细的使用指南:
基本用法
git rebase -i <commit-hash> # 对某个提交之后的所有提交进行交互式变基
git rebase -i HEAD~3 # 对最近3个提交进行交互式变基
git rebase -i origin/main # 对当前分支与origin/main分支分叉点之后的所有提交进行变基
交互式界面操作
执行命令后会打开编辑器(如Vim),显示类似如下的内容:
pick 1a2b3c4 Commit message 1
pick 5d6e7f8 Commit message 2
pick 9g0h1i2 Commit message 3
你可以修改每行前面的命令来改变提交的处理方式:
常用命令选项
| 命令 | 缩写 | 功能 |
|---|---|---|
| pick | p | 保留该提交(默认) |
| reword | r | 保留提交但修改提交信息 |
| edit | e | 保留提交但暂停以修改内容 |
| squash | s | 将提交合并到前一个提交中 |
| fixup | f | 类似squash但丢弃提交信息 |
| drop | d | 删除该提交 |
| exec | x | 执行shell命令 |
常见工作流示例
-
修改最近的提交信息:
reword 1a2b3c4 New commit message pick 5d6e7f8 Commit message 2 -
合并多个提交为一个:
pick 1a2b3c4 Commit message 1 squash 5d6e7f8 Commit message 2 squash 9g0h1i2 Commit message 3 -
重新排序提交:
只需调整行的顺序即可改变提交顺序