git回滚方式

本文所说的回滚,均是从版本库中找回之前的版本。文件未提交时的回滚比较简单,不包括在内。

一.单文件回滚

将某一文件回滚到某次提交

回滚方法

git checkout commitID fileName

看个例子
我们建立空文件a.txt将其提入版本库
在a.txt中增加一行文字,再将其提入版本库
此时a.txt的内容:
这里写图片描述
版本库中与a.txt相关的提交
这里写图片描述
现在我们来回滚文件到第一个版本
git checkout d5212be438720 a.txt
此时,工作区和暂区a.txt的内容已变回第一版本的空文件
这里写图片描述

撤销回滚

若要放弃这次回滚,则

git reset a.txt
git checkout a.txt

二. 版本整体回滚(多文件一起)

方法

git reset --hard commitID

例子
假设我们有三个提交版本
版本1:建立空文件a.txt b.txt
版本2:在a.txt中加一行文字“this is file a”
版本3:加入新的空文件c.txt
这里写图片描述

这里写图片描述
现在我们回滚到版本1
执行

git reset --hard d5212be438720a

这里写图片描述
看下效果
a.txt为空,c.txt消失了!
这里写图片描述
连提交记录也只剩下了最初版本的一条
这里写图片描述

撤销回滚

使用reset之后,回滚稍微复杂些
首先

git reflog

这里写图片描述
我们看到,回滚之前的版本位于aa23c50 HEAD@{1}
执行

git reset --hard master@{1}

注:master为当前分支名
这里写图片描述

再看效果
这里写图片描述
我们安全到家了!

如果你了解一些git的原理,看到这,一定会想。
git reset –hard master@{1}可以撤销回滚,是否可以直接用于回滚呢?答案是可以!不妨一试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值