git-annex-repair(1)         General Commands Manual        git-annex-repair(1)

       git-annex-repair - recover broken git repository

       git annex repair

       This can repair many of the problems with git repositories that git
       fsck detects, but does not itself fix. It's useful if a repository has
       become badly damaged. One way this can happen is if a repository used
       by git-annex is on a removable drive that gets unplugged at the wrong

       This command can actually be used inside git repositories that do not
       use git-annex at all; when used in a repository using git-annex, it
       does additional repairs of the git-annex branch.

       It works by deleting any corrupt objects from the git repository, and
       retrieving all missing objects it can from the remotes of the

       If that is not sufficient to fully recover the repository, it can also
       reset branches back to commits before the corruption happened, delete
       branches that are no longer available due to the lost data, and remove
       any missing files from the index. It will only do this if run with the
       --force option, since that rewrites history and throws out missing
       data.  Note that the --force option never touches tags, even if they
       are no longer usable due to missing data.

       After running this command, you will probably want to run git fsck to
       verify it fixed the repository. Note that fsck may still complain about
       objects referenced by the reflog, or the stash, if they were unable to
       be recovered. This command does not try to clean up either the reflog
       or the stash.

       It is also a good idea to run git annex fsck --fast after this command,
       to make sure that the git-annex branch reflects reality.


              Enable repair actions that involve deleting data that has been
              lost due to git repository corruption.



       Joey Hess <>