您的位置:首页 > 其它

Git操作-版本回退

2015-05-02 20:36 363 查看
接着上一节的例子

我们在README.txt文件中再添加一段内容(add modify1):

1  add a file called README
2  add modify1


然后提交到版本库

查看日志

使用
$ git log
显示文件的每次提交修改的记录,git log命令显示从最近到最远的提交日志



如果嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数:



注意:24ee419cb72e7a7baa5814787dd2a63dfe031a34是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准

回退版本

每提交一个新版本,实际上Git就会把它们自动串成一条时间线。每一个提交的版本都在这条时间线上,我们可以回退到任意一个版本。。

回退时git必须要知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新提交的,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

比如:我们现在要返回上一个版本
1  add a file called README
,需要使用
git reset
命令



$ cat README.txt
后可以看到README.txt内容只有
1  add a file called README
,已经回到上一个版本了

此时再
git log
查看一下记录,会发现第二版本的历史记录不见了



回退后再返回新版本

如果想再回到第二版本,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找,找到第二版本的commit id是3628164…,就可以指定回到第二版本,这种方法对过去的每一个版本都适用,前提是要知道那个版本的commit id



这样发现第二版本又回来了,,版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向第二个版本的内容改为指向上一个版本,,所以你让HEAD指向哪个版本号,你就把当前版本定位在哪。

如果回退到某一个版本时,想回到新版本时,但是找不到commit id怎么办?其实还是有办法的,Git提供了一个命令git reflog用来记录你的每一次命令:



这样就能找到你的每一条命令的commit id
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐