git-annex/doc/git-annex-unlock.mdwn
Joey Hess 91ba0cc7fd
Revert "--json-exceptions"
This reverts commit a325524454.

Turns out this was predicated on an incorrect belief that json output
didn't already sometimes lack the "key" field. Since json output already
can when `giveup` was used, it seems unncessary to add a whole new
option for this.
2023-04-25 17:37:34 -04:00

79 lines
2.3 KiB
Markdown

# NAME
git-annex unlock - unlock files for modification
# SYNOPSIS
git annex unlock `[path ...]`
# DESCRIPTION
Normally, the content of annexed files is protected from being changed.
Unlocking an annexed file allows it to be modified. When no files are
specified, all annexed files in the current directory are unlocked.
Unlocking a file changes how it is stored in the git repository (from a
symlink to a pointer file), so this command will make a change that you
can commit.
The content of an unlocked file is still stored in git-annex, not git,
and when you commit modifications to the file, the modifications will also
be stored in git-annex, with only the pointer file stored in git.
If you use `git add` to add a file to the annex, it will be added in unlocked form from
the beginning. This allows workflows where a file starts out unlocked, is
modified as necessary, and is locked once it reaches its final version.
Normally, unlocking a file requires a copy to be made of its content, so
that its original content is preserved, while the copy can be modified. To
use less space, annex.thin can be set to true; this makes a hard link to
the content be made instead of a copy. (Only when supported by the file
system.) While this can save considerable disk space, any modification made
to a file will cause the old version of the file to be lost from the local
repository. So, enable annex.thin with care.
# EXAMPLES
# git annex unlock disk-image
# git commit -m "unlocked to allow VM to make changes as it runs"
# git annex unlock photo.jpg
# gimp photo.jpg
# git annex add photo.jpg
# git annex lock photo.jpg
# git commit -m "redeye removal"
# OPTIONS
* file matching options
The [[git-annex-matching-options]](1)
can be used to specify files to unlock.
* `--json`
Enable JSON output. This is intended to be parsed by programs that use
git-annex. Each line of output is a JSON object.
* `--json-error-messages`
Messages that would normally be output to standard error are included in
the JSON instead.
* Also the [[git-annex-common-options]](1) can be used.
# SEE ALSO
[[git-annex]](1)
[[git-annex-edit]](1)
[[git-annex-add]](1)
[[git-annex-lock]](1)
# AUTHOR
Joey Hess <id@joeyh.name>
Warning: Automatically converted into a man page by mdwn2man. Edit with care.