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

tne*_*niv 1 git stage

如果我对file.txt进行更改

然后 git add file.txt

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

然后我又做git add file.txt

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

ams*_*ams 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
Run Code Online (Sandbox Code Playgroud)

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

git show 0c3546bd9101264cd6a9fb1fb54cea04c6e0a4b8
Run Code Online (Sandbox Code Playgroud)