git -- 删除某次本地的commit

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

方法一:
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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 输入 y ,创建 git_hug 目录No githug directory found, do you wish...
    风花花阅读 2,134评论 0赞 4
  • 朋友整理的,放这里偶尔过来看看 一、基本介绍 首先,Git作为版本控制系统,他的原理与SVN为首的集中式版本控制系...
    allenzhan阅读 1,164评论 0赞 3
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 5,252评论 0赞 9
  • 1. diff 与 patch 两个文件:source.txt target.txthello world4...
    yudianer阅读 428评论 0赞 0
  • 以下笔记主要参考gitgot,大致了解git使用和原理。 第一部分我们从个人的视角去研究如何用好Git,并且揭示G...
    carolwhite阅读 2,626评论 0赞 1

友情链接更多精彩内容