0

假设我删除了一个文件foo以及对 HEAD 的许多其他更改(哈希显然是假的!)

$ git rev-parse --short HEAD
00AAAAAAAA
$ git add .  # lots of changes
$ git rm foo 
$ git commit -m 'changed stuff, removed foo'
$ git rev-parse --short HEAD
04DDDDDDDD

几次提交后,我决定我真的不想删除foo. 如何恢复它,同时恢复它的所有git blame信息?如果我只是git checkout 00AAAAAAAA -- foo,它会显示为一个新文件,因此不会保留任何责备信息。同上,git revert -n 00AAAAAAAA然后手动删除额外的还原,甚至git restore --source 00AAAAAAAA. 所有这些都恢复了已删除文件的内容,但我丢失了git blame信息。

是否有一些我缺少的标准选项可以做到这一点,还是我必须通过挖掘提交树来滚动自己?

4

0 回答 0