如果我们继续对 readme.txt 文件进行修改,改成如下内容:

Git is a distributed version control system.
 
Git is free software distributed under the GPL.


然后添加并提交:

$ git add readme.txt
 
$ git commit -m "append GPL"
 
[master 1094adb] append GPL
 
 1 file changed, 1 insertion(+), 1 deletion(-)

 
到目前为止,readme.txt 文件一共有三个版本被提交到了 Git 仓库里,我们可以用 git log 命令进行查看:

git log

$ git log //查看历史记录
 
commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)
 
Author: Michael Liao <askxuefeng@gmail.com>
 
Date:   Fri May 18 21:06:15 2018 +0800
 
    append GPL
 
commit e475afc93c209a690c39c13a46716e8fa000c366
 
Author: Michael Liao <askxuefeng@gmail.com>
 
Date:   Fri May 18 21:03:36 2018 +0800
 
    add distributed
 
commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
 
Author: Michael Liao <askxuefeng@gmail.com>
 
Date:   Fri May 18 20:59:18 2018 +0800
 
    wrote a readme file

 
我们还可以加上 --pretty=oneline 参数:

$ git log --pretty=oneline
 
1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append GPL
 
e475afc93c209a690c39c13a46716e8fa000c366 add distributed
 
eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote a readme file //一大串数字是 commit id ,而且每个人的都不一样。

 
 

git reset

好了,现在如果我们想把 readme.txt 文件退回到上一个版本,就可以使用 git reset 命令:

$ git reset --hard HEAD^ //HEAD表示当前版本,则HEAD^表示上一个版本,那么上上版本就是HEAD^^

HEAD is now at e475afc add distributed

cat

这时候用 cat 命令查看一下 readme.txt 的内容:

$ cat readme.txt //查看 readme.txt 文件的内容
 
Git is a distributed version control system.
 
Git is free software.

 
果然 readme.txt 文件返回到了上一个版本。

git reset

我们现在想要回到最新的版本,还是使用 git reset 命令:

$ git reset --hard 1094a //这里不能用HEAD而必须使用 commit id ,因为最新版本在之前返回时已经被删除了,1094a就是最新版本的 commit id,可以在之前的代码中查到

HEAD is now at 83b0afe append GPL

这时再查看一下 readme.txt 文件内容:

登录后复制

$ cat readme.txt
 
Git is a distributed version control system.
 
Git is free software distributed under the GPL.

 
果然,又回到了最新的版本。