首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索在git中错误重置的本地更改的文件?

如何检索在git中错误重置的本地更改的文件?
EN

Stack Overflow用户
提问于 2015-06-08 09:30:29
回答 1查看 312关注 0票数 2

下面的情况解释了git的问题。

  1. 我正在使用“开发”分支,并且已经对本地文件进行了一些更改,如.sql、.java、.js.
  2. 我创建了一个名为“develop_some_future”的本地分支,因为我的老板希望在合并主“开发”存储库之前确认我的更改。
  3. 显然,我的本地文件更改@'develop‘分支已经应用到'develop_some_future’分支,并且我再次开始编辑本地文件。
  4. 出于某种原因,我试图提取我的同事已经提交的文件,但是它失败了(可能我不能很好地设置'develop_some_future‘分支)。所以,我把现在的分支改成了“开发”分支,并试图把它们拉出来。
  5. 幸运的是,它工作了,然后我试图回到'develop_some_future‘分支。
  6. 更改分支时突然弹出一个对话框,并要求“您对"~~~.sql”的本地更改将被删除,因为它尚未提交。为避免此情况,请提交该文件或选择重新安装。“
  7. 因为我认为只有'~~~.sql‘会被更改为最新的提交状态,这不是一个问题,我选择了’重置‘按钮,但不幸的是,所有的本地更改已经消失。

有人知道我怎么才能在重置前检索日期吗?

我发现“git reflog”和“git重置头{}”命令都很有用。但是,git reflog只显示提交、合并和签出更改,因此我根本找不到重置状态。

EN

回答 1

Stack Overflow用户

发布于 2015-07-10 10:36:13

恐怕您的文件已经永远消失了,除非您以前以某种方式(addstash save)安排了该文件。

如果它已被放置,则Git创建了一个blob对象,该对象现在正在悬空(git fsck将告诉您悬挂的对象)。然后,您可以通过使用git cat-file将blob的内容写入一个新文件来恢复该文件。

如果没有,你就完蛋了,你得再做一次工作。

问题似乎首先出现了,因为您认为未分阶段/未提交的更改属于当前分支。它们不存在,并且只存在于工作目录中。它们将在切换分支时结转(当然,除非在分支中修改了相同的文件。然后,Git将拒绝签出另一个分支)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30705573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档