这种情况是:我在我的git存储库中丢失了一些工作,这项工作曾经被提交过,但现在已经埋没在我的历史中,某些地方可能无法通过'git log --all'访问.我唯一能记住的是一些不同的字符串,可以确定一个文件,这是我工作的一部分.
我有一个解决方案......但它很长,你有更好的解决方案吗?
这是我的解决方案:
我已经设法通过批处理命令找到我的提交SHA1:
如果可以从某些ref访问提交,那么最佳解决方案肯定是pickaxe搜索:git log -Sstring --all.
如果它无法到达,那么你是对的,你将不得不做一些挖掘.如果你认为你有遍布各地的悬挂提交,最简单的方法就是git fsck --lost-found用来找到你的悬空提交.(它还会打印悬空blob.)然后,您可以git grep <commit>在每个SHA1上使用,并找到您的字符串.
另一方面,如果你认为你有一些被修剪的候选分支,并且你的目标将在其中一个上,我会git reflog show回顾你的reflogs,找到他们提示的提交,并重新创建它们,这样你就可以做到git log -Sstring <branches> ^master.
| 归档时间: |
|
| 查看次数: |
2788 次 |
| 最近记录: |