美文网首页Git
git 恢复之前的版本,git reset --hard (na

git 恢复之前的版本,git reset --hard (na

作者: 走在路上的小二 | 来源:发表于2016-11-23 15:03 被阅读276次

git 恢复之前的版本可以写下面一行命令实现

git reset —-hard HEAD^

(head代表当前的版本,加一个 ^ 代表现在的版本的上一个,加两个 ^^ 代表上上一个)

让我们来看一些例子:

$git init

$touch foo.txt

$git add foo.txt

$git commit -m "initialcommit"

$echo 'newdata'>>foo.txt

$git commit -a -m "morestuffaddedtofoo"

你现在看git的历史记录,你可以看到两次提交:

$git log

*98abc5a(HEAD,master)morestuffaddedtofoo

*b7057a9initialcommit

现在让我们来重置回第一次提交的状态:

$git reset --hardb7057a9

$git log

*b7057a9(HEAD,master)initialcommit

这看起来我们是丢掉了我们第二次的提交,没有办法找回来了。但是reflog就是用来解决这个问题的。简单的说,它会记录所有HEAD的历史,也就是说当你做reset,checkout等操作的时候,这些操作会被记录在reflog中。

$git reflog

b7057a9HEAD@{0}:reset:movingtob7057a9

98abc5aHEAD@{1}:commit:morestuffaddedtofoo

b7057a9HEAD@{2}:commit(initial):initialcommit

所以,我们要找回我们第二commit,只需要做如下操作:

$git reset --hard98abc5a

再来看一下git记录:

$git log

*98abc5a(HEAD,master)morestuffaddedtofoo

*b7057a9initialcommit

PS: 希望小二写的对大家有所帮助,欢迎留言。

相关文章

网友评论

    本文标题:git 恢复之前的版本,git reset --hard (na

    本文链接:https://www.haomeiwen.com/subject/eglvpttx.html