我不小心删除了一个分支,我猜测它在reflog列表中,但是检查每个列表项太困难了。我记得在那个分支中创建了一个文件夹,并且有一些文件在里面,因此通过查找所有影响该文件夹的丢失提交,应该可以找到我的分支。所以问题是:如何找到这些提交?
在reflog命令中,我只需指定路径。如果该路径不在工作目录中,则重要的是在路径之前使用“--”
git reflog -- path/to/the/affected/folder
您可以使用 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
git log -g path/to/it
相同。 - Josh Lee