git-recover: recover deleted files in your repository
Switch branches/tags
Nothing to show
Clone or download

git-recover: recover deleted files in your repository

git-recover allows you to recover some files that you've accidentally deleted from your working directory. It helps you find files that exist in the repository's object database - because you ran git add - but were never committed.

Getting Started

The simplest way to use git-recover is in interactive mode - simply run git-recover -i and it will show you all the files that you can recover and prompt you to act.

Using git-recover

Running git-recover without any arguments will list all the files (git "blobs") that were recently orphaned, by their ID. (Their filename is not known.)

You can examine these blobs by running git show <objectid>. If you find one that you want to recover, you can provide the ID as the argument to git-recover. You can specify the --filename option to write the file out and apply any filters that are set up in the repository. For example:

git-recover 38762cf7f55934b34d179ae6a4c80cadccbb7f0a --filename shattered.pdf

You can also specify multiple files to recover, each with an optional output filename:

git-recover 38762c --filename one.txt cafebae --filename bae.txt

If you want to recover all the orphaned blobs in your repository, run git-recover --all. This will write all the orphaned files to the current working directory, so it's best to run this inside a temporary directory beneath your working directory. For example:

mkdir _tmp && cd _tmp && git-recover --all

By default, git-recover limits itself to recently created orphaned blobs. If you want to see all orphaned files that have been created in your repository (but haven't yet been garbage collected), you can run:

git-recover --full


git-recover [-a] [-i] [--full] [<id> [-f <filename>] ...]

-a, --all
Write all orphaned blobs to the current working directory. Each file will be named using its 40 character object ID.

-i, --interactive
Display information about each orphaned blob and prompt to recover it.

List or recover all orphaned blobs, even those that are in packfiles. By default, git-recover will only look at loose object files, which limits it to the most recently created files. Examining packfiles may be slow, especially in large repositories.

The object ID (or its abbreviation) to recover. The file will be written to the current working directory and named using its 40 character object ID, unless the -f option is specified.

-f <filename>, --filename <filename>
When specified after an object ID, the file written will use this filename. In addition, any filters (for example: CRLF conversion or Git-LFS) will be run according to the gitattributes configuration.

Getting Help and Contributing

To report bugs, get assistance or provide a bug fix to this program, check it out on GitHub.

Copyright (c) Edward Thomson. All rights reserved.

git-recover is open source software and is available under the MIT license. Please see the included LICENSE file for more information.