git-recover使您可以恢复您从工作目录中意外删除的一些文件。它可以帮助您找到存储库对象数据库中存在的文件 - 因为您可以添加git add - 但从未投入。
使用git-recover的最简单方法是处于交互式模式 - 只需运行git-recover -i即可,它将向您显示您可以恢复并提示您采取行动的所有文件。
在没有任何参数的情况下运行git-recover将列出最近通过其ID孤立的所有文件(git“ blob”)。 (他们的文件名不知道。)
您可以通过运行git show <objectid>检查这些斑点。如果您发现要恢复的一个,则可以将ID作为git-recover的参数提供。您可以指定--filename选项以将文件写出并应用存储库中设置的任何过滤器。例如:
git-recover 38762cf7f55934b34d179ae6a4c80cadccbb7f0a --filename shattered.pdf
您还可以指定多个要恢复的文件,每个文件都带有一个可选的输出文件名:
git-recover 38762c --filename one.txt cafebae --filename bae.txt
如果要恢复存储库中的所有孤儿斑点,请运行git-recover --all 。这将将所有孤立的文件写入当前的工作目录,因此最好在您的工作目录下方的临时目录中运行此文件。例如:
mkdir _tmp && cd _tmp && git-recover --all
默认情况下, git-recover将自己限制在最近创建的孤儿斑点上。如果您想查看存储库中创建的所有孤儿(但尚未收集垃圾),则可以运行:
git-recover --full
git-recover [-a] [-i] [--full] [<id> [-f <filename>] ...]
-a , --all
将所有孤儿斑点写入当前的工作目录。每个文件将使用其40个字符对象ID命名。
-i , --interactive
显示有关每个孤儿斑点的信息,并提示将其恢复。
--full
列出或恢复所有孤儿斑点,甚至是包装文件中的斑点。默认情况下, git-recover只会查看松散的对象文件,该文件将其限制在最近创建的文件中。检查包装文件可能很慢,尤其是在大型存储库中。
<id>
对象ID(或其缩写)要恢复。该文件将写入当前工作目录,并使用其40个字符对象ID命名,除非指定了-f选项。
-f <filename> , --filename <filename>
当在对象ID之后指定时,书面文件将使用此文件名。另外,任何过滤器(例如:CRLF转换或GIT-LFS)都将根据gitattributes配置运行。
要报告错误,请获得帮助或为该程序提供错误修复,请在GitHub上查看。
版权(c)爱德华·汤姆森(Edward Thomson)。版权所有。
Git-Recover是开源软件,可根据MIT许可证获得。请参阅随附的LICENSE文件以获取更多信息。