假设我删除了一个文件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
信息。
是否有一些我缺少的标准选项可以做到这一点,还是我必须通过挖掘提交树来滚动自己?