在 git 中,如何恢复已删除的文件及其责任信息

问题描述

假设我删除了一个文件 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信息。

是否有一些我缺少的标准选项可以执行此操作,还是我必须通过挖掘提交树来推出自己的选项?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)