Scroll to navigation

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


git-annex-init - initialize git-annex


git annex init [description]


Until a repository (or one of its remotes) has been initialized, git-annex will refuse to operate on it, to avoid accidentally using it in a repository that was not intended to have an annex.

It's useful, but not mandatory, to initialize each new clone of a repository with its own description. If you don't provide one, one will be generated using the username, hostname and the path.

If any special remotes were configured with autoenable=true, this will also attempt to enable them. See git-annex-initremote(1). To prevent that, re-enable a remote with "autoenable=false", or mark it as dead (see git-annex-dead(1)).

This command is entirely safe, although usually pointless, to run inside an already initialized git-annex repository.

A top-level .noannex file will prevent git-annex init from being used in a repository. This is useful for repositories that have a policy reason not to use git-annex. The content of the file will be displayed to the user who tries to run git-annex init.


# git annex add foo
git-annex: First run: git-annex init
# git annex init
init ok
# git annex add foo
add foo ok


Force the repository to be initialized using a different annex.version than the current default.
When the version given is not supported, but can be automatically upgraded to a newer version, it will use the newer version instead.
Only enable any special remotes that were configured with autoenable=true, do not otherwise initialize anything.
Do not enable special remotes that were configured with autoenable=true.
Enable JSON output. This is intended to be parsed by programs that use git-annex.
Messages that would normally be output to standard error are included in the JSON instead.
git-annex-common-options(1) can be used.







Joey Hess <>