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

       git-annex-import - add files from a non-versioned directory or a
       special remote

       git annex import [path ...] | git annex import --from remote

       This command is a way to import files from elsewhere into your git-
       annex repository. It can import files from a directory into your
       repository, or it can import files from a git-annex special remote.


       Importing from a special remote first downloads all new content from
       it, and then constructs a git commit that reflects files that have
       changed on the special remote since the last time git-annex looked at
       it. Merging that commit into your repository will update it to reflect
       changes made on the special remote.

       This way, something can be using the special remote for file storage,
       adding files, modifying files, and deleting files, and you can track
       those changes using git-annex.

       You can combine using git annex import to fetch changes from a special
       remote with git annex export to send your local changes to the special

       You can only import from special remotes that were configured with
       importtree=yes when set up with git-annex-initremote(1). Only some
       kinds of special remotes will let you configure them this way.

       To import from a special remote, you must specify the name of a branch.
       A corresponding remote tracking branch will be updated by git annex
       import. After that point, it's the same as if you had run a git fetch
       from a regular git remote; you can git merge the changes into your
       currently checked out branch.

       For example:

        git annex import master --from myremote
        git merge myremote/master

       Note that you may need to pass --allow-unrelated-histories the first
       time you git merge from an import. Think of this as the remote being a
       separate git repository with its own files. If you first git annex
       export files to a remote, and then git annex import from it, you won't
       need that option.

       You can also limit the import to a subdirectory, using the
       "branch:subdir" syntax. For example, if "camera" is a special remote
       that accesses a camera, and you want to import those into the photos
       directory, rather than to the root of your repository:

        git annex import master:photos --from camera
        git merge camera/master

       The git annex sync --content command (and the git-annex assistant) can
       also be used to import from a special remote.  To do this, you need to
       configure "remote.<name>.annex-tracking-branch" to tell it what branch
       to track. For example:

        git config remote.myremote.annex-tracking-branch master
        git annex sync --content


       When run with a path, git annex import moves files from somewhere
       outside the git working copy, and adds them to the annex.

       Individual files to import can be specified. If a directory is
       specified, the entire directory is imported.

        git annex import /media/camera/DCIM/*

       When importing files, there's a possibility of importing a duplicate of
       a file that is already known to git-annex -- its content is either
       present in the local repository already, or git-annex knows of another
       repository that contains it, or it was present in the annex before but
       has been removed now.

       By default, importing a duplicate of a known file will result in a new
       filename being added to the repository, so the duplicate file is
       present in the repository twice. (With all checksumming backends,
       including the default SHA256E, only one copy of the data will be

       Several options can be used to adjust handling of duplicate files, see
       --duplicate, --deduplicate, --skip-duplicates, --clean-duplicates, and
       --reinject-duplicates documentation below.


              Do not delete files from the import location.

              Running with this option repeatedly can import the same files
              into different git repositories, or branches, or different
              locations in a git repository.

              Only import files that are not duplicates; duplicate files will
              be deleted from the import location.

              Only import files that are not duplicates. Avoids deleting any
              files from the import location.

              Does not import any files, but any files found in the import
              location that are duplicates are deleted.

              Imports files that are not duplicates. Files that are duplicates
              have their content reinjected into the annex (similar to git-

              Allow existing files to be overwritten by newly imported files.

              Also, causes .gitignore to not take effect when adding files.

       file matching options
              Many of the git-annex-matching-options(1) can be used to specify
              files to import.

                   git annex import /dir --include='*.png'

              ## COMMON OPTIONS

       --jobs=N -JN
              Imports multiple files in parallel. This may be faster.  For
              example: -J4

       --json Enable JSON output. This is intended to be parsed by programs
              that use git-annex. Each line of output is a JSON object.

              Messages that would normally be output to standard error are
              included in the json instead.

       Note that using --deduplicate or --clean-duplicates with the WORM
       backend does not look at file content, but filename and mtime.

       If annex.largefiles is configured, and does not match a file, git annex
       import will add the non-large file directly to the git repository,
       instead of to the annex.




       Joey Hess <>