意外地从Git存储库中删除

时间:2012-09-07 07:36:59

标签: git

从Git存储库中删除文件时,我不小心删除了一个未提交更改的文件。

还原删除导致文件返回而没有未提交的更改。有没有办法找回文件的未提交状态?

接受jmort253的建议继承人是步骤......

  1. 对文件进行了更改(之前已经提交并推送了文件) 它是在git)
  2. 使用SourceTree,意外删除了一些文件 包括前面提到的文件。
  3. 推送到原点
  4. 意识到错误颠倒了提交(使用SourceTree)。
  5. 文件现已恢复,但缺少步骤1中所做的更改。

    希望有所帮助。

2 个答案:

答案 0 :(得分:2)

简而言之:不。 一个uncommited文件(几乎是定义)版本控制系统不知道任何文件,因此版本控制系统将无法帮助您,就好像您已经删除了磁盘上的随机文件(例如,一个文件,从来没有在您的存储库的文件层次结构中。)

也就是说,除非您在存储库的先前状态中包含stash,其中包含未经修改的更改? (git stash list应该给你一个想法)

如果不这样做,则应转向适用于您的操作系统和文件系统的文件恢复方法。

答案 1 :(得分:1)

您应该尝试以下内容查看reflog:

git rev-list --all --oneline mylostfile.txt

mylostfile.txt替换为您的实际文件路径。

如果文件存在于git上,则无论是在分支指向的提交内还是丢失的提交中,它都会显示出来。

这将显示所有提交哈希值,其中存在对该文件的更改,因此您可能需要单独查看它们以查看其中一个是否具有您想要的文件。

如果它没有显示比git可能不知道该文件。