IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git之如何恢复代码到之前版本 -> 正文阅读

[开发工具]git之如何恢复代码到之前版本

写在前面

在工作中,我们经常会遇到这种场景,因为误操作,将代码push到了远端仓库,此时就需要恢复代码到我们提交之前的某个版本,本文就一起来看下看下类似的这种场景我们应该如何处理。

1:恢复所有文件

假设现在我们有如下的提交记录:

在这里插入图片描述

我们想要恢复的话,只需要执行命令git reset --hard <要恢复到的版本号>,如下:

$ git reset --hard d0c9bddae
HEAD is now at d0c9bdd 1111

JHP+Administrator@jhp MINGW64 /d/test/test-reset (master)
$ git log -n5 --pretty=oneline
d0c9bddae5a3f0e44f58f830ec47ff2eac89ca49 (HEAD -> master) 1111
783110dcd88c5c8b7acb8d31c5a56ec3705f6419 Initial commit

可以看到恢复成功了,效果就是本地时光倒流了,但是此时因为本地的代码版本落后于仓库(其实就是我们开发完代码后,push时,已经有其他人push了代码的场景,必须先pull才行),此时我们想要push到远端仓库,必须加上-f参数,注意该操作很危险,因为会强制删除其他人的提交记录,如下:

$ git push origin master:master -f
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.3]
To https://gitee.com/dongsir2020/test-reset.git
 + 9ed6070...d0c9bdd master -> master (forced update)

2:恢复部分文件

假设现在我们有如下的提交记录:

$ git log -n8 --pretty=oneline
9168bd48aa6090fece2adc374207a171f643d166 (HEAD -> master, origin/master, origin/HEAD) 3333333
d0c9bddae5a3f0e44f58f830ec47ff2eac89ca49 1111
783110dcd88c5c8b7acb8d31c5a56ec3705f6419 Initial commit
$ git show --raw 9168bd48aa6090fece2adc374207a171f643d166
commit 9168bd48aa6090fece2adc374207a171f643d166 (HEAD -> master, origin/master, origin/HEAD)
Author: dongyunqi <dongzhi525@126.com>
Date:   Mon Jun 20 18:07:12 2022 +0800

    3333333

:100644 100644 90b4516 5114355 M        aa.txt
:100644 100644 7accf80 f4eb5cf M        bb.txt

可以看到在提交9168bd48a我们修改了aa.txt,bb.txt,但是我们只想要修改aa.txt到版本d0c9bdda的提交,就可以执行如下命令:

$ git checkout d0c9bddae5a3f0e44f58f830ec47ff2eac89ca49 aa.txt
Updated 1 path from 2e85e4c

这样做本质就是使用指定版本对本地的文件做了修改,效果和我们自己做的修改是一样的,因此可以如同提交自己修改的代码一样,来提交代码了。如果是文件不多,可以优先考虑使用这种方式来恢复文件,因为这种方式不会删除提交历史,也不会存在删除别人已经提交的代码的风险,在实际工作中需要根据具体情况来选择使用。

写在后面

Git恢复之前版本的两种方法reset、revert(图文详解)

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:20:21  更:2022-06-25 18:20:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:51:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码