git 学习(2)--恢复版本
查看修改历史记录
$ git log
commit fba77877d316436c1b774b8933380ebcac668040
Author: keith <ustbfxx@163.com>
Date: Fri Jan 16 01:34:06 2015 +0800
add a git instance
commit 148ff70cb26b4805609ada5f95436e002490adb9
Author: keith <ustbfxx@163.com>
Date: Wed Jan 14 04:14:20 2015 +0800
add good study
commit 69a629d7ec0e0c9f582fb26bb50e5974b18c55a3
Author: keith <ustbfxx@163.com>
Date: Tue Jan 13 22:51:10 2015 +0800
create readme.txt file
如果我们嫌输出信息太多,可以加上--pretty=oneline
$ git log --pretty=oneline
fba77877d316436c1b774b8933380ebcac668040 add a git instance
148ff70cb26b4805609ada5f95436e002490adb9 add good study
69a629d7ec0e0c9f582fb26bb50e5974b18c55a3 create readme.txt file
这里fba77877..8040
是commit id
版本号,是通过SHA1计算出来的一个非常大的数字
回退到上一个版本
$ git reset --hard HEAD^
HEAD is now at 148ff70 add good study
$ cat readme.txt
good git
git is a file version control system
good good study
可以看出已经回到上一个版本,那如何在返回原来的版本呢
$ git reset --hard fba77877
HEAD is now at fba7787 add a git instance
$ cat readme.txt
good git
git is a file version control system
good good study
Git git=new Git();
这里的commit id
不需要输入全部,不过也不能太少,不然git会无法确定是那一个,HEAD
指向commit id
直接会返回到这个版本号。这些版本号git都是有记录的,我们通过git reflog
来查找输入的命令,可以指向我们要返回的commit id
$ git reflog
fba7787 HEAD@{0}: reset: moving to fba77877
148ff70 HEAD@{1}: reset: moving to HEAD^
fba7787 HEAD@{2}: commit: add a git instance
148ff70 HEAD@{3}: commit: add good study
69a629d HEAD@{4}: commit (initial): create readme.txt file
总结命令
$ git log --pretty=online//查看提交的次数和commit id
$ git reset --hard HEAD^ //回到上一个版本
$ git reset --hard commit_id //返回某一个commit_id 的版本
$ git reflog //查看提交的命令
正确的步骤是 修改完后 使用 git add
命令,再提交,如果重新修改后没有使用add
命令,提交之后新修改的是不会提交的。
作者:KeithMorning
出处:http://www.cnblogs.com/keithmoring/
关于作者:欢迎转载,且在文章页面明显位置给出原文链接
如有问题,可以通过keith@keithmorning.com 联系我,非常感谢。