git - 文件完全从我的存储库中消失了,硬重置没有帮助,我能做些什么吗?
问题描述
我有一个 GitHub 私人仓库,我通过 Visual Studio for Mac 2019 将我的更改推送到该仓库。
背景故事
我直接在 GitHub 上添加了一个自述文件,几周后我编辑了本地副本并尝试推送我的更改。我做不到,因为它说我远程进行了本地没有的更改,这很好。
然后我将我的更改隐藏在 VS for Mac 中,并尝试提取,这似乎有效。
然后我尝试应用我的存储,并且我不断收到随机错误。以为我可能必须更新 VS for Mac,我也这样做了。
然后更新后,我无法打开本地仓库中的任何文件,因为它一直说BeginBatchUpdate called twice without calling EndBatchUpdate
.
我重新启动了 VS for Mac,然后我尝试构建我的项目,但我注意到一个文件丢失了。
我试图检查早期的提交,但就好像它从未存在过一样——该文件在早期的提交中也不存在……我试过了git reset --hard
,不走运,我试着检查我git reflog
是否在它除了提交、重置和签出之外,所以我不知道文件怎么会像这样消失。
问题
有没有机会取回那个随机删除的文件?
解决方案
在 git 中,版本控制的主要节点是提交。首先,我会尝试列出所有与您的自述文件有关的提交。如果该列表不为空,则检查这些提交应该使您能够恢复该文件。
如果提交列表为空,则您没有对该文件的提交,这意味着它实际上从未被版本化。
你隐藏了自述文件的事实让我认为它可能没有提交,因为如果它被提交,那么当你执行 git pull 时你会有一个合并,最坏的情况是解决一些合并冲突。
因此,我想您无法使用 git 恢复您的文件,并且对于未来,我建议您应该始终执行提交和合并以处理版本差异,而不是隐藏您的更改。
但是,自述文件的丢失,除非它很长,否则可能是通过重写它来解决的问题。重要的是要从这个问题中吸取教训,并确保您将来不会因为更可怕的后果而失去您的工作。
推荐阅读
- php - 从android应用程序错误中获取多个图像
- javascript - 高阶函数“every”方法问题
- excel - Excel Vba 将多个单元格拆分为列
- vba - 在 vb 上发布具有数据库访问权限的应用程序
- magento2 - magento 2中的Service目录有什么用
- java - 我必须在 java 代码中做什么才能杀死 GoRefQueue 终结器线程?
- php - PHP:如何在不调用调试函数的情况下自动获取回溯
- android - 我不断收到“您的电子邮件无法登录”错误
- angular - 手风琴中的文件附件选项
- php - 使用正则表达式匹配 html 标签中的特定内容