Git入门(4)-版本回退
在Git入门(3)中学会了怎样去修改文件,你可以去练习着多修改几次,并且提交。当你想查看你都修改过几个版本时,输入命令
git log:
$ git log
commit 57e21750932ead81de35e28c79974aae59f3801d
Author: qinzishuai <qzs531156@163.com>
Date: Tue Jul 19 22:15:23 2016 +0800
Author: qinzishuai <qzs531156@163.com>
Date: Tue Jul 19 22:15:23 2016 +0800
slidingmenu
commit 3b1d7b50b4932d2b29a5a558fe0771fc06fb5aac
Author: qinzishuai <qzs531156@163.com>
Date: Tue Jul 19 22:04:15 2016 +0800
Author: qinzishuai <qzs531156@163.com>
Date: Tue Jul 19 22:04:15 2016 +0800
对话框合集
离你最近的版本是你最新修改的版本,git log命令是显示你最近到最远的日志,如果嫌输出的信息太多,看的很乱可以输入命令:
$ git log --pretty=oneline
这个命令输出的结果就是每个版本就一行,看的很方便。
版本回退:
假如我们想把readme.txt文件退回到上一个版本,在Git中,HEAD表示当前的版本,HEAD^表示上一个版本,上上个版本就是HEAD^^,假如想回退到第100个版本时,就是HEAD~100.
现在我们要把readme.txt回退到上个版本,就可以使用命令:
git reset 如下:
$ git reset --hard HEAD^ HEAD is now at ea34578 add distributed
回退完之后我们输入cat readme.txt表示查看当前的文件内容
$ cat readme.txt
输入完看一看是不是回退后的版本内容。
注意:
当我们用git log查看时,发现我们回退前的那个版本消失了,我们有时会后悔回退,那怎么办呢。在Git中,不要担心,我们可以通过commit id来解决:
首先我们可以git reflog 这是记录你的每一条命令,然后我们会发现每条命令前面都有一串数字或字母,比如:
3628164 HEAD@{1}: commit: append GPL
这段命令的commit id就是3628164,我们找到了id,就可以回到这个版本了,输入下面命令就可以回了:
$ git reset --hard 3628164
总结:
-
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。 -
穿梭前,用
git log可以查看提交历史,以便确定要回退到哪个版本。 -
要重返未来,用
git reflog查看命令历史,以便确定要回到未来的哪个版本。