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

       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

        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 <>