通过已知文件夹名称恢复丢失的提交

时间:2010-11-18 13:22:31

标签: git commit restore

我意外丢失了一个分支。我猜它是在reflog列表中,但是检查其中的每一个都太难了。我记得在该分支中创建了一个文件夹,其中包含一些文件,因此应该可以通过查找影响该文件夹的所有丢失提交来找到我的分支。所以问题是:我怎样才能找到这些提交?

2 个答案:

答案 0 :(得分:2)

我应该在reflog命令中指定路径。如果在工作树中没有“ - ”,则在路径前使用“ - ”非常重要

git reflog -- path/to/the/affected/folder

答案 1 :(得分:0)

您可以grep git lstree的输出来查找分支中的提交:

for ID in `git reflog | cut -d' ' -f1` # filter out the commit ID
do
  # show the tree for each commit and grep for the file there
  git ls-tree -r $ID | grep file/name && echo "File is on $ID"
done