Git 删除某次指定的提交

作者: 云中布衣   分类:  学习笔记    热度: (698℃)   时间: 2017-1-15 18:47   标签: #git  #GitHub    

前面一篇文章讲到,要git忽略跟踪某些文件,但机智如我已经将add之后的内容提交(commit)了,这就比较尴尬了。也就是说本次提交不是我的初衷,需要丢弃它,那么问题就来了,如何Git 删除某次指定的提交?(关键词: git delete commit)

首先,通过git log命令找到历史commit版本。

commit 11100dbfc5358cb6a8695f729586ad0914135680
Author: 52ai <email>
Date:   Sun Jan 15 17:46:05 2017 +0800
    开始统计数据
commit 6185afd5fc80e95259236756bac2941bf3c17705
Author: 52ai <email>
Date:   Sun Jan 15 17:29:51 2017 +0800
    更新ReadMe 

这里我需要把开始统计数据这个提交给删掉,因此我需要该次commit后面的信息:

commit 11100dbfc5358cb6a8695f729586ad0914135680

然后使用git reset 命令回退到某个版本。
$ git reset --soft 11100dbfc5358cb6a8695f729586ad0914135680
该命令运行后,开始统计数据之后的提交都丢弃了!

附录:reset命令有三种方式:

(1)git reset --mixed:此为默认方式,它回退到某个版本,只保留源码,回退commit和index信息

(2)git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

(3)git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

<完>由云中布衣整理,转载请注明出处

56.8K

发表评论:

© 云中布衣 2015 | Driven by EMLOG  | SiteMap | RunTime: 10.65ms&RSS  |   | 回到顶部

文章数量【230】 评论数量【156】 稳定运行【1031天】

Visitor IP Address【54.80.82.9】