Git的版本回退----“后悔药”以及删除分支

前篇说了commit ID很重要,为什么重要呢?在这里揭晓啦!

每当我们做错事的时候,总是很后悔,可是都没有后悔药吃,但是在Git这里,它提供后悔药。

我先先创建一个"second.txt"文档,测试一下:

Git的版本回退----“后悔药”以及删除分支_第1张图片

创建好,并且提交了一次。但是里面是空白的,并没有内容,现在我们再添加内容:第二次提交。

然后再commit:

Git的版本回退----“后悔药”以及删除分支_第2张图片

我们看到它的commid ID,发现每次commit 后的ID都不一样。这有利于我们准确的吃某个时间段的"后悔药"。我们输入一下命令:

git reset --hard HEAD^

Git的版本回退----“后悔药”以及删除分支_第3张图片

我们选择回到刚创建没有填写内容的版本。其中输入命令后,它提示 More? 我们填写了 “~”,这个符号表示,上一个commit的版本,然后我们就回到了 "second"这里了,我们看看文本里面的内容,发现是空的:

Git的版本回退----“后悔药”以及删除分支_第4张图片

我们,再继续吃后悔药,回到中文编码"第一次提交"的那个版本。为了不看那么多log信息,我们使用这个命令:

git reflog

Git的版本回退----“后悔药”以及删除分支_第5张图片

这个 reflog 命令,是记录我们每一次输入的命令,然后我们找到 那段乱码的 commit ID,输入命令:

git reset --hard fa8694b

Git的版本回退----“后悔药”以及删除分支_第6张图片

表示已经回到了 “第一次提交”的那个版本。同样的,工作区那里也只剩下这个 hello.txt,first、second也没有了。

其实版本回退就是 HEAD 在时间线上的圈圈来回移动,你需要去哪里,填写上它的commit ID就可以了。画图理解:

Git的版本回退----“后悔药”以及删除分支_第7张图片

由于我们没有删除dev分支,所以dev分支依旧跟着它回退。

Git的版本回退----“后悔药”以及删除分支_第8张图片

git reset --hard

表示查看当前 HEAD指向哪个“圈圈”。

那么我们不要dev分支,该怎么删除呢?其实很简单,输入下面命令:

git branch -d dev

因为我们现在是回到了"第一次提交"这个版本,所以需要先合并,才可以删除,否则它会报错:



迷迷糊糊的写了这一些。可能不太好,现在也夜深了,改天再回来修改吧。

你可能感兴趣的:(Git)