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 reset --hard撤销上一次commit后部分文件消失 -> 正文阅读

[开发工具]git reset --hard撤销上一次commit后部分文件消失

1. 撤销上一次commit/add

参考:git撤销已提交的commit

"git撤销上一次commit的内容"
> git reset --soft HEAD^

"如果需要连add的文件也一并撤销,使用命令"
> git reset --hard HEAD^

"""
HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1 如果进行两次的commit,想要都撤回,可以使用HEAD~2
–soft 不删除工作空间的改动代码 ,撤销commit,不撤销git add file
–hard 删除工作空间的改动代码,撤销commit且撤销add
"""

2. 因为reset导致部分文件消失

但是后来发现,执行上面的操作之后,会有一些文件丢失。。

网上最常见的一种方法比较复杂,可以去看参考中的[1,2,4]

这里只记录相对简单的一种,主要是参考中的[5],

"1. 使用git reflog show查看自己reset时的HEAD@{num}"
>git reflog show
68ae78b (HEAD -> dev) HEAD@{0}: reset: moving to HEAD^
f0a236c HEAD@{1}: commit: initial commit
68ae78b (HEAD -> dev) HEAD@{2}: checkout: moving from XXXto dev
3d03b4f (origin/master, origin/XXX, origin/XXX, origin/HEAD, huangs) HEAD@{3}: reset: moving to origin/HEAD
3d03b4f (origin/master, origin/XXX, origin/XXX, origin/HEAD, huangs) HEAD@{4}: checkout: moving from dev to XXX
68ae78b (HEAD -> dev) HEAD@{5}: reset: moving to HEAD
68ae78b (HEAD -> dev) HEAD@{6}: commit: first update
f3f616b (origin/dev) HEAD@{7}: clone: from http://XXX/XX/XXXX.git

"2. 假设想要恢复的是68ae78b ,即HEAD@{0},使用git reset "
> git reset HEAD@{0}
Unstaged changes after reset:
M       XXX/XXX/XXX.cfg

"如果在恢复之前又进行了修改,那么这里会提示,但是会覆盖。"

"3. 如果上述命令无效,可以尝试这个,HEAD@{0}对应的hash"
> git reset --hard 68ae78b 

执行完上述命令,就可以看到上次的内容就恢复了。

如果依然无法解决,自己去看?stack overflow:Recover from git reset --hard?


参考:

  1. ?CSDN:恢复因git reset --hard 但未提交全部文件到仓库导致的文件丢失问题
  2. 掘金:git reset --hard后如何恢复文件
  3. 简书:git reset --hard 操作后的数据恢复
  4. 博客园:git reset --hard 操作后的数据恢复
  5. ?stack overflow:Recover from git reset --hard?

3. 后续操作

虽然恢复了,但是会导致,上一次撤销的commit/add也恢复,因此最好是

git stash # 将改动藏起来
git pull  # 用新代码覆盖本地代码
git stash pop # 将刚藏起来的改动恢复

"然后再add ,commit,push"
  开发工具 最新文章
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-05-08 08:19:34  更:2022-05-08 08:19:59 
 
开发: 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年5日历 -2024/5/19 6:03:39-

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