这就是情况:我在git存储库中失去了一些工作,这项工作曾经被提交过,但现在被埋在我的历史记录中,某处这可能无法通过'git log --all'。 我唯一能记住的就是一些不同的字符串,这个字符串可以指出一个文件,这个文件是我工作的一部分。如何查找包含包含给定字符串的文件的树的提交SHA1
我有一个解决方案...但它是相当长的,你有更好的解决方案?
这是我的解决方案:
我设法找到我按配料几个命令提交SHA1:
- 首先找出所有“斑点”的对象中的.git /对象,“git的猫'他们(和使用grep)找到包含我的文件的BLOB的SHA1。
- 然后,我不得不解析所有的'树'对象,以找到哪些包含文件的SHA1 ...直到包含在没有其他'树'对象的树对象。
- 最终解析包含此根树的所有提交。
http://stackoverflow.com/questions/2839253/git-history-find-lost-line-by-keyword – simplyharsh 2010-08-10 16:51:48
@simplyharsh:这个问题是不同的 - 提交可能无法从任何分支到达。 – Cascabel 2010-08-10 17:09:21