Git操作-版本回退

接着上一节的例子
我们在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值