wbswjc
2019-01-29 01:59:44 +08:00
# 如果你想要删除该提交及其中内容:
你需要 rebase 中的 drop 操作。
git 仓库中有 a, b, c, d 4 个文件,依次提交,形成以下内容:
$ git log
> commit f3fe836c34642927f57e8f2e6cc8a62382c93c0c
> d
> commit 0e4f4862a0ab3256d28ced2f26950e2e4312c5b4
> c
> commit a4c409545f056bb6a21f9f82d2749f6faadde70a
> b
> commit f3134e02ebfe4d5b70999c3dc03c8f31161cf209
> a
以首个提交,即 a 为基准,进入 rebase 模式:
$ git rebase -i f313
> pick a4c4095 b
> pick 0e4f486 c
> pick f3fe836 d
修改 rebase 策略如下,表示删除第 3 次提交,即 c:
> pick a4c4095 b
> drop 0e4f486 c
> pick f3fe836 d
:wq 或 :x 退出 vim,开始 rebase:
因为只有一个 drop 操作,且没有影响其后任何一个 commit,所以直接全部成功:
> Successfully rebased and updated refs/heads/master.
这时候:
$ git log
> commit 7eafc41ab349feed33c060e5898278509a71d373
> d
> commit a4c409545f056bb6a21f9f82d2749f6faadde70a
> b
> commit f3134e02ebfe4d5b70999c3dc03c8f31161cf209
> a