标签:
首先要明白的是Git有三个部分,本别是工作区,缓存区和版本库
Git管理的是【文件修改】,比如对某个文件添加了一行,这个行为就属于一个文件修改。
在我们修改或者新建了文件之后,都要用git add命令将【文件修改】加入到stage(缓存区)中,然后再用git commit命令将stage中的【文件修改】提交到版本库。
上图中的master是主干,可以理解为主分支(trunk)。HEAD是指向最新版本的指针。
上面都是在commit之前撤销修改。如果已经commit了,想回退,或者回退之后又想取消,则需要下面的命令:
git log 查看提交日志。日志之中包含每次提交的版本号,作者,时间,注释。例如:
commit cb926e7ea50ad11b8f9e909c05226233bf755030
Author: Michael Liao <askxuefeng@gmail.com>
Date: Mon Aug 19 17:51:55 2013 +0800?
wrote a readme file
commit之后的那一长串数字就是版本号,你想要回退到哪个版本,只需要输入命令:git reset --hard 版本号
版本号不用包含所有,只需要开头的几位就行了,git会自动搜索,但是位数不能太少,以免和其他版本号产生混淆。
还有一种相对当前版本回退的方法,简单来说,想回退到倒数第一次commit的版本,输入:git reset --hard HEAD^,想回退到倒数第二次commit的版本,输入:
git reset --hard HEAD^^,想回退到倒数第n次commit的版本,输入:git reset --hart HEAD~n
回退之后,再查看提交日志,会发现未来版本的日志已经没有了,即如果想取消回退,却无法找到未来版本的版本号了。此时需要用命令:git reflog,来查看未来版本号。再通过git reset --hard 版本号,来恢复到未来版本。
标签:
原文地址:http://www.cnblogs.com/johnsblog/p/4228828.html