git 错误操作回滚

来源:互联网 发布:互动百科排名优化 编辑:程序博客网 时间:2024/06/16 20:59
回滚范例:
1.初始化并操作文件
$ git init                        //初始化
$ touch foo.txt                    //创建foo.txt文件,待提交git
$ git add foo.txt                //git add文件
$ git commit -m "initial commit”    //添加commit注释
$ echo 'new data' >> foo.txt        //第一次修改文件
$ git commit -a -m "more stuff added to foo”        //添加commit注释

2.查看提交记录
$ git log
* 98abc5a (HEAD, master) more stuff added to foo
* b7057a9 initial commit

3.模拟误操作重置状态
$ git reset --hard b7057a9
$ git log
* b7057a9 (HEAD, master) initial commit


NOTE:虽然已经在git log中看不到之前的head,但是reflog记录了你此前的操作。记录了所有head的修改历史。


4.查看Reflog
$ git reflog
b7057a9 HEAD@{0}: reset: moving to b7057a9
98abc5a HEAD@{1}: commit: more stuff added to foo
b7057a9 HEAD@{2}: commit (initial): initial commit


5.回滚丢失的head:
$ git reset --hard 98abc5a


6.再次查看git log 验证
$ git log
* 98abc5a (HEAD, master) more stuff added to foo
* b7057a9 initial commit



只要按照以上步骤,一般都可以正常回滚。除非你的错误操作被当做rubish丢弃了。理论上讲30天内reflog不会被清空。
0 0
原创粉丝点击