git - git pull 从本地删除文件
问题描述
在将新提交推送到上游存储库时,我收到一个错误,我需要在推送之前提取新的更改,但这导致我丢失了一些更改。
我执行的命令是:
git reset --hard HEAD@{12}
解决方案
在执行 git reset --hard 之前列出可能的状态(在本例中为 git reset --hard HEAD@{12})。
除了 12 次提交(可恢复)之外,关于您的其他更改:
您只是进行了更改,没有做
git add
或git commit
。恢复:您无法恢复这些更改,因为它不存在于 git 记录中。不过,您可以尝试 IDE 本地备份副本(对于 intellij:https ://blog.jetbrains.com/idea/2008/01/using-local-history-to-restore-deleted-files/ )。
您只是使用添加它
git add
但没有提交它。恢复:不能保证,但您可以尝试恢复。
以前阶段性的更改(git add)应该可以从索引对象中恢复,所以如果你这样做了,请使用 git fsck --lost-found 来定位与其相关的对象。(这会将对象写入 .git/lost-found/ 目录;从那里您可以使用 git show 查看每个文件的内容。)如果您很幸运并且您的 IDE 进行了备份,您可以检查 IDE 是否挽救了您的生命(intellij:https ://blog.jetbrains.com/idea/2008/01/using-local-history-to-restore-deleted-files/ )。
您使用以下方式提交了更改
git commit
恢复:是的,在这种情况下您可以恢复。利用:
git reflog
获取提交的提交哈希。然后使用:
git reset --hard <commit-retrieved-using-reflog>
推荐阅读
- html - 在角度输入键后如何聚焦按钮
- sql - 不支持显示触发
- spring - 包括 Spring Security Headers,仍然收到“Header Not Set”漏洞警告
- python - Tensorflow 提高测试精度
- openshift - Openshift 已删除 Cronjob 仍在运行
- macos - 如何正确设置小部件以在 macOS 上进行后台更新?
- python - 是否有一个参数可以让 ccxt 从 binance 测试网获取 ohlvc?
- typescript - 如何在开发模式下使用 typecipt 在 vue 3 中启用 devtools
- c# - 将 Oct 27 2022 9:09:50:693PM 转换为 c# dateTime
- c - 汇编:跳入和跳出标签的建议方式(类似于 C 中的 if 语句)