Provided by: git-annex_7.20190129-2_amd64 bug


       git-annex-proxy - safely bypass direct mode guard


       git annex proxy -- git cmd [options]


       Only  useful  in  a  direct  mode  repository,  this runs the specified git command with a
       temporary work tree, and updates the  working  tree  to  reflect  any  changes  staged  or
       committed by the git command.

       For example, to revert the most recent change that was committed to the repository:

        git annex proxy -- git revert HEAD

       To check out a past version of the repository:

        git annex proxy -- git checkout HEAD^^

       To rename a directory:

        git annex proxy -- git mv mydir newname

       To  commit the changes to a specific file, first use git annex add to stage the changes in
       the index, and then proxy a commit:

        git annex add myfile
        git annex proxy -- git commit myfile -m foo

       The temporary work tree that the git command is run in is set up by checking out all files
       that are in the index, and copying (or hard linking) any unstaged files from the real work
       tree. Since the git command is run using this temporary work tree, it won't see eg,  local
       modifications  to  files. So, it probably is not useful to proxy a command like "git add".
       However, you can use the proxy with any git command you like, as long as you  think  about
       how it will interact with the temporary work tree.





       Joey Hess <>