git - 多次硬重置后恢复提交?
问题描述
我有一个分支,它从 master 的许多提交中进行了很多更改。几周前它合并了 master 并且它自动合并并且看起来很好。
今天把master合并进去了,因为master里面有一个很大的更新,所以我有很多冲突。我经历并(认为)我成功地修复了冲突,有很多错误,似乎自动合并没有按计划进行。我重置回我认为在此合并之前的哈希,然后强制将其推送到原点,希望我能够再试一次并更有条理地做。
但是,现在查看我的本地和远程分支,我找不到该分支中的任何提交。我正在使用 Bitbucket,但我并不像使用 Github 那样精通搜索提交,但我也一直在使用,但gitk
没有git log --oneline --graph --decorate
成功找到任何东西。
我恢复到在我的笔记本电脑上查看已过时但在相关分支上有提交的 repo 副本。我能够通过 Bitbucket 上的哈希搜索它,发现提交在那里,但似乎不在仓库中。
如果它无法挽救(我希望并怀疑),我唯一的选择是从我笔记本电脑上的过时版本开始,找出缺少的内容并从那里开始。
我对自己取得的成就感到非常困惑,不想让情况变得更糟,很高兴提供更多信息。
解决方案
解决方案比我预期的要简单得多。
git reflog | grep '{name of branch}'
- 查找导致问题的提交并复制该
HEAD
提交之前的哈希。(例如我的是checkout: moving from master to {name of branch}
) git reset {commit hash} --hard
然后因为我也想修复我的远程分支,所以我做了git push -f
.
推荐阅读
- windows - 服务器 SSL 认证路径与浏览器认证路径不同
- ssl - wcf 窗口服务。创建 TLS 客户端凭据时发生致命错误。内部错误状态为 10013
- hmacsha1 - OAuth1.0a C 库或 HMAC-SHA1 C 库
- git - 标签的 Jenkins Git 参考存储库路径
- visual-studio-code - vscode 自定义任务问题匹配器找不到匹配正则表达式的文本
- ios - 什么会导致 RevenueCat 在 App Review 期间失败?
- r - 删除 R 中按因子分组的异常值
- docker - nbgitpuller + jupyterhub = 404
- r - 按已知因子级别过滤数据会产生空数据框
- ios - 将两个具有相同名称的单独文档上传到 Firebase