修改之前错误的提交(非最新的提交)
commit --amend 可以修复最新 commit 的错误,但是如果倒数第二个 commit 写错了,就要用到 rebase -i(交互式 rebase)命令了
git rebase -i:交互式 rebase
rebase -i 是 rebase --interactive 的缩写形式,意为交互式 rebase
如果是在写错 commit 之后,又提交了一次才发现之前写错了,那么这时候使用 commit --amend 已经晚了,但是可以使用 rebase -i
git rebase -i HEAD^^
解释:
- 在 git 中有两种偏移符号:^ 和 ~
- ^ 代表把 commit 往前偏移,偏移的数量是 ^ 的数量。
HEAD^^
表示 HEAD 所指向的 commit 往前数两个 commit - ~ 代表把 commit 往回偏移,偏移的数量是 ~ 后面的数。例如
HEAD~5
表示 HEAD 指向的 commit 往后数 5 个 commit - 上面的这行代码表示,把当前 commit (HEAD 所指向的 commit ) rebase 到 HEAD 之前 2个的 commit 上
编辑界面
在输入上述指令之后,git 会进入一个编辑页面,可以让你选择对那个 commit 进行修改