git -- 删除某次本地的commit

2020-04-01  本文已影响0人  踩坑小分队

场景:
本地提交了多次,发现某一次提交有问题,怎么删除?

方法一:
rebase -i
假如想要抽掉某个 commit 又不想留下记录, rebase -i 就很好用了

假如只想要还原 D 变成:

A -> B -> C -> E
则用命令

git rebase -i C
这时候会出现文字编辑

pick D xxx
pick E ooo
把 pick D xxx 整列移除后储存就可以了,若中间有遇到冲突,则必须自行修正后再继续

git add .
git rebase --continue

方法二:
reset
用于做整段 commits 的还原

例如希望还原到 B commit 以后的状态变成

A -> B

git reset B
那么 git 会将 log 中的 C, D, E 都清除

但档案内容没有任何变动,因此会看到 C, D, E 修改的档案处在 unstaged 阶段

若针对部分档案还原可以用

git checkout [file path]
若要全部还原可用

git checkout -f

上一篇下一篇

猜你喜欢

热点阅读