一、版本回退
我们用readme文件举例子,修改好内容之后,重新提交
git add readme.txt
git commit -m "说明"
返回结果
我们可以多修改几次,来试一下版本回退功能
修改之后的git log,按Q推出
回到上一个版本git reset --hard HEAD^
终端截图
cat命令查看文件内容
以此类推回到上上个版本就是git reset --hard HEAD^^
当往上的版本比较多,比如往上50个版本的时候我们用git reset --hard HEAD~50
退回以后出现一个奇怪的事情,我们再执行git log
命令发现看不到第三版了
git log结果
这时,我们想要回到第三版需要用以下命令来
git rest hard 63ef
63ef
是第三次提交时的版本号,我们没必要去写全,git会自动检索,但也不能只写一两位。因为版本号多了会有重复的。
恢复到第三版
- 问题①:如果我们没有记录被恢复版本的版本号,怎么找回呢?
Git提供了一个命令git reflog
,通过这个命令我们可以看到每次git的操作记录
- 问题②:如果我们通过git回到第一版,那么
git log
命令还能看到第二版吗?
小结:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令
git reset --hard commit_id
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。