git - 分离头的合并使更改丢失
问题描述
我想我犯了一个可怕的错误,但我希望你能帮助我。
我正在使用 sourcetree,但我认为在这个错误之后我将学习如何使用 git bash。
因为两天我在一个分离的头上工作,我没有注意到它,我做了一些提交并且进展顺利,然后我尝试将我的头合并到我的开发分支中(有可能我做了另一个方式)。我解决了单一的冲突并承诺。我的屏幕刷新了,我的最后两个提交消失了,我的更改也消失了。
我希望有办法恢复这些数据。
最好的祝福,
迈克尔
解决方案
有很好的机会取回这些提交。Git 有一个名为reflog(参考日志)的组件。它列出了您最近所做的所有提交。因此,即使您删除了一个分支,例如,来自该分支的提交仍将保留在 reflog中一段时间,默认为 90 天,您可以恢复它们。
发射:
git reflog
并尝试找到丢失的提交并在该提交处创建一个新分支:
git branch my-lost-stuff <sha of the lost commit from the reflog>
完成后,提交可以再次访问,您可以继续使用merge
, rebase
,cherry-pick
等reset
。
推荐阅读
- nginx - 如何让nginx代理通过读取主机域映射
- three.js - MTLLoader 破坏了其他 3js 代码并且没有正确加载纹理
- javascript - 在 iOS 工作时,ReactNative Android 所有请求都失败
- javascript - 如何在 JavaScript 中显示 Object 的值?
- javascript - 自定义元素设置:构造函数与 connectedCallback
- html - 让页脚粘在页面底部并被内容推送
- macos - 如何在 Mac 中安排自动化工作流程
- cassandra - 如何在 Cassandra 中正确配置 CDC
- flutter - 使用 games_services 插件时出错:未处理的异常:PlatformException(error, 4: 4: , null)
- ssl - openssl 命令从 .pfx 文件生成一个空的 .key 文件