首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git回滚方式

git回滚方式

作者头像
跑马溜溜的球
发布2020-12-07 15:37:19
1.5K0
发布2020-12-07 15:37:19
举报
文章被收录于专栏:日积月累1024日积月累1024

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

一.单文件回滚

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

回滚方法

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}可以撤销回滚,是否可以直接用于回滚呢?答案是可以!不妨一试。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-10-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.单文件回滚
    • 回滚方法
      • 撤销回滚
      • 二. 版本整体回滚(多文件一起)
        • 方法
        • 撤销回滚
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档