3

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

恢复删除会导致文件返回而没有未提交的更改。有没有办法恢复文件的未提交状态?

从 jmort253 那里得到建议是步骤......

  1. 对文件进行了更改(之前已提交并推送,因此它在 git 中)

  2. 使用 SourceTree,意外删除了一些文件,包括前面提到的文件。

  3. 推到原点

  4. 意识到错误扭转了提交(使用SourceTree)。

  5. 文件现在回来了,但它缺少在步骤 1 中所做的更改。

    希望有帮助。

4

2 回答 2

2

简而言之:没有。未提交的文件(几乎按照定义)是版本控制系统不知道的文件,因此版本控制系统将不再能够帮助您,就好像您删除了磁盘上的随机文件(例如,从未在您的存储库的文件层次结构中)。

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

如果你不这样做,你应该转向适合你的操作系统和文件系统的文件恢复方法。

于 2012-09-07T07:46:55.730 回答
1

您应该尝试以下查看 reflog:

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

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

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

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

如果它没有出现,那么 git 可能不知道该文件。

于 2012-09-07T10:01:08.830 回答