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
文件以获取更多信息。