52 lines
1.4 KiB
Markdown
52 lines
1.4 KiB
Markdown
# NAME
|
|
|
|
git-annex proxy - safely bypass direct mode guard
|
|
|
|
# SYNOPSIS
|
|
|
|
git annex proxy `-- git cmd [options]`
|
|
|
|
# DESCRIPTION
|
|
|
|
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.
|
|
|
|
# SEE ALSO
|
|
|
|
[[git-annex]](1)
|
|
|
|
[[git-annex-direct]](1)
|
|
|
|
# AUTHOR
|
|
|
|
Joey Hess <id@joeyh.name>
|
|
|
|
Warning: Automatically converted into a man page by mdwn2man. Edit with care.
|