git staged文件两次,你能恢复旧版本吗?

时间:2016-04-06 19:14:59

标签: git stage

如果我对file.txt进行更改

然后git add file.txt

然后我做了更多改为file.txt

然后我再次git add file.txt

我意识到我在第二次更改/编辑文件时犯了一个错误。你能回到我最初上演的文件版本吗?

2 个答案:

答案 0 :(得分:5)

是的,从理论上讲,对象仍在.git/objects中,直到下次git gc运行(在某些其他操作后自动发生)。

不幸的是弄清楚哪个对象可能很棘手。如果最近编辑并添加了文件,那么时间戳将有所帮助。

ls -lrt .git/objects/*/* | tail
-r--r--r-- 1 ams users     6976 Apr  6 19:53 .git/objects/0c/3546bd9101264cd6a9fb1fb54cea04c6e0a4b8

如果您看到一个带有可能时间戳的文件,那么您可以检索如下内容:

git show 0c3546bd9101264cd6a9fb1fb54cea04c6e0a4b8

答案 1 :(得分:1)

正如J. Titus在评论中所说:

  

你从未承诺过产生参考,所以没有。