1git-annex(1)                General Commands Manual               git-annex(1)
2
3
4

NAME

6       git-annex - manage files with git, without checking their contents in
7

SYNOPSIS

9       git annex command [params ...]
10

DESCRIPTION

12       git-annex  allows  managing  files  with git, without checking the file
13       contents into git. While that may seem paradoxical, it is  useful  when
14       dealing with files larger than git can currently easily handle, whether
15       due to limitations in memory, checksumming time, or disk space.
16
17       Even without file content tracking, being able  to  manage  files  with
18       git, move files around and delete files with versioned directory trees,
19       and use branches and distributed clones, are all very handy reasons  to
20       use git. And annexed files can co-exist in the same git repository with
21       regularly versioned files, which is convenient  for  maintaining  docu‐
22       ments,  Makefiles,  etc that are associated with annexed files but that
23       benefit from full revision control.
24
25       When a file is annexed, its content is moved into  a  key-value  store,
26       and  a  symlink  is made that points to the content. These symlinks are
27       checked into git and versioned like regular files. You  can  move  them
28       around,  delete them, and so on. Pushing to another git repository will
29       make git-annex there aware of the annexed file, and it can be  used  to
30       retrieve its content from the key-value store.
31

EXAMPLES

33        # git annex get video/hackity_hack_and_kaxxt.mov
34        get video/hackity_hack_and_kaxxt.mov (not available)
35          I was unable to access these remotes: server
36          Try making some of these repositories available:
37            5863d8c0-d9a9-11df-adb2-af51e6559a49  -- my home file server
38            58d84e8a-d9ae-11df-a1aa-ab9aa8c00826  -- portable USB drive
39            ca20064c-dbb5-11df-b2fe-002170d25c55  -- backup SATA drive
40        failed
41        # sudo mount /media/usb
42        # git remote add usbdrive /media/usb
43        # git annex get video/hackity_hack_and_kaxxt.mov
44        get video/hackity_hack_and_kaxxt.mov (from usbdrive...) ok
45
46        # git annex add iso
47        add iso/Debian_5.0.iso ok
48
49        # git annex drop iso/Debian_4.0.iso
50        drop iso/Debian_4.0.iso ok
51
52        # git annex move iso --to=usbdrive
53        move iso/Debian_5.0.iso (moving to usbdrive...) ok
54

COMMONLY USED COMMANDS

56       Like many git commands, git-annex can be passed a path that is either a
57       file or a directory. In the latter case it acts on all  relevant  files
58       in  the  directory.  When no path is specified, most git-annex commands
59       default to acting on all relevant files in the current  directory  (and
60       subdirectories).
61
62       help   Display built-in help.
63
64              For help on a specific command, use git annex help command
65
66       add [path ...]
67              Adds  files  in  the path to the annex. If no path is specified,
68              adds files from the current directory and below.
69
70              See git-annex-add(1) for details.
71
72       get [path ...]
73              Makes the content of annexed files available in this repository.
74
75              See git-annex-get(1) for details.
76
77       drop [path ...]
78              Drops the content of annexed files from this repository.
79
80              See git-annex-drop(1) for details.
81
82       move [path ...] [--from=remote|--to=remote]
83              Moves the content of files from or to another remote.
84
85              See git-annex-move(1) for details.
86
87       copy [path ...] [--from=remote|--to=remote]
88              Copies the content of files from or to another remote.
89
90              See git-annex-copy(1) for details.
91
92       status [path ...]
93              Similar to git status --short, displays the status of the  files
94              in the working tree. Particularly useful in direct mode.
95
96              See git-annex-status(1) for details.
97
98       unlock [path ...]
99              Unlock annexed files for modification.
100
101              See git-annex-unlock(1) for details.
102
103       edit [path ...]
104              This is an alias for the unlock command. May be easier to remem‐
105              ber, if you think of this as allowing you  to  edit  an  annexed
106              file.
107
108       lock [path ...]
109              Use  this  to undo an unlock command if you don't want to modify
110              the files, or have made modifications you want to discard.
111
112              See git-annex-lock(1) for details.
113
114       sync [remote ...]
115              Synchronize local repository with remotes.
116
117              See git-annex-sync(1) for details.
118
119       mirror [path ...] [--to=remote|--from=remote]
120              Mirror content of files to/from another repository.
121
122              See git-annex-mirror(1) for details.
123
124       addurl [url ...]
125              Downloads each url to its own file, which is added to the annex.
126
127              See git-annex-addurl(1) for details.
128
129       rmurl file url
130              Record that the file is no longer available at the url.
131
132              See git-annex-rmurl(1) for details.
133
134       import [path ...]
135              Add files from a non-version-controlled directory or  a  special
136              remote into the annex.
137
138              See git-annex-import(1) for details.
139
140       importfeed [url ...]
141              Imports the contents of podcast feeds into the annex.
142
143              See git-annex-importfeed(1) for details.
144
145       export treeish --to remote
146              Export content to a remote.
147
148              See git-annex-export(1) for details.
149
150       undo [filename|directory] ...
151              Undo last change to a file or directory.
152
153              See git-annex-undo(1) for details.
154
155       multicast
156              Multicast file distribution.
157
158              See git-annex-multicast(1) for details.
159
160       watch  Watch for changes and autocommit.
161
162              See git-annex-watch(1) for details.
163
164       assistant
165              Automatically sync folders between devices.
166
167              See git-annex-assistant(1) for details.
168
169       webapp Opens  a  web app, that allows easy setup of a git-annex reposi‐
170              tory, and control of the git-annex assistant. If  the  assistant
171              is not already running, it will be started.
172
173              See git-annex-webapp(1) for details.
174

REPOSITORY SETUP COMMANDS

176       init [description]
177
178              Until a repository (or one of its remotes) has been initialized,
179              git-annex will refuse to operate on it,  to  avoid  accidentally
180              using it in a repository that was not intended to have an annex.
181
182              See git-annex-init(1) for details.
183
184       describe repository description
185              Changes the description of a repository.
186
187              See git-annex-describe(1) for details.
188
189       initremote name type=value [param=value ...]
190              Creates a new special remote, and adds it to .git/config.
191
192              See git-annex-initremote(1) for details.
193
194       enableremote name [param=value ...]
195              Enables use of an existing special remote in the current reposi‐
196              tory.
197
198              See git-annex-enableremote(1) for details.
199
200       renameremote
201              Renames a special remote.
202
203              See git-annex-renameremote(1) for details.
204
205       enable-tor
206              Sets up tor hidden service.
207
208              See git-annex-enable-tor(1) for details.
209
210       numcopies [N]
211              Configure desired number of copies.
212
213              See git-annex-numcopies(1) for details.
214
215       trust [repository ...]
216              Records that a repository is trusted to  not  unexpectedly  lose
217              content. Use with care.
218
219              See git-annex-trust(1) for details.
220
221       untrust [repository ...]
222              Records  that a repository is not trusted and could lose content
223              at any time.
224
225              See git-annex-untrust(1) for details.
226
227       semitrust [repository ...]
228              Returns a repository to the default semi trusted state.
229
230              See git-annex-semitrust(1) for details.
231
232       group repository groupname
233              Add a repository to a group.
234
235              See git-annex-group(1) for details.
236
237       ungroup repository groupname
238              Removes a repository from a group.
239
240              See git-annex-ungroup(1) for details.
241
242       wanted repository [expression]
243              Get or set preferred content expression.
244
245              See git-annex-wanted(1) for details.
246
247       groupwanted groupname [expression]
248              Get or set groupwanted expression.
249
250              See git-annex-groupwanted(1) for details.
251
252       required repository [expression]
253              Get or set required content expression.
254
255              See git-annex-required(1) for details.
256
257       schedule repository [expression]
258              Get or set scheduled jobs.
259
260              See git-annex-schedule(1) for details.
261
262       config Get and set other configuration stored in git-annex branch.
263
264              See git-annex-config(1) for details.
265
266       vicfg  Opens EDITOR on a temp file containing most of the above config‐
267              uration  settings,  as  well as a few others, and when it exits,
268              stores any changes made back to the git-annex branch.
269
270              See git-annex-vicfg(1) for details.
271
272       direct Switches a repository to use direct mode, where rather than sym‐
273              links  to  files,  the files are directly present in the reposi‐
274              tory.
275
276              See git-annex-direct(1) for details.
277
278       indirect
279              Switches a repository back from  direct  mode  to  the  default,
280              indirect mode.
281
282              See git-annex-indirect(1) for details.
283
284       adjust Switches a repository to use an adjusted branch, which can auto‐
285              matically unlock all files, etc.
286
287              See git-annex-adjust(1) for details.
288

REPOSITORY MAINTENANCE COMMANDS

290       fsck [path ...]
291
292              Checks the annex consistency, and warns about or fixes any prob‐
293              lems found.  This is a good complement to git fsck.
294
295              See git-annex-fsck(1) for details.
296
297       expire [repository:]time ...
298              Expires  repositories that have not recently performed an activ‐
299              ity (such as a fsck).
300
301              See git-annex-expire(1) for details.
302
303       unused Checks the annex for data that does not correspond to any  files
304              present  in any tag or branch, and prints a numbered list of the
305              data.
306
307              See git-annex-unused(1) for details.
308
309       dropunused [number|range ...]
310              Drops the data corresponding to the numbers, as  listed  by  the
311              last git annex unused
312
313              See git-annex-dropunused(1) for details.
314
315       addunused [number|range ...]
316              Adds  back files for the content corresponding to the numbers or
317              ranges, as listed by the last git annex unused.
318
319              See git-annex-addunused(1) for details.
320
321       fix [path ...]
322              Fixes up symlinks that have become  broken  to  again  point  to
323              annexed content.
324
325              See git-annex-fix(1) for details.
326
327       merge  Automatically merge changes from remotes.
328
329              See git-annex-merge(1) for details.
330
331       upgrade
332              Upgrades the repository to current layout.
333
334              See git-annex-upgrade(1) for details.
335
336       dead [repository ...] [--key key]
337              Indicates  that a repository or a single key has been irretriev‐
338              ably lost.
339
340              See git-annex-dead(1) for details.
341
342       forget Causes the git-annex branch to be rewritten, throwing away  his‐
343              torical data about past locations of files.
344
345              See git-annex-forget(1) for details.
346
347       repair This  can repair many of the problems with git repositories that
348              git fsck detects, but does not itself  fix.  It's  useful  if  a
349              repository  has become badly damaged. One way this can happen is
350              if a repository used by git-annex is on a removable  drive  that
351              gets unplugged at the wrong time.
352
353              See git-annex-repair(1) for details.
354
355       p2p    Configure peer-2-Peer links between repositories.
356
357              See git-annex-p2p(1) for details.
358

QUERY COMMANDS

360       find [path ...]
361
362              Outputs  a  list of annexed files in the specified path. With no
363              path, finds files in the current directory and  its  subdirecto‐
364              ries.
365
366              See git-annex-find(1) for details.
367
368       whereis [path ...]
369              Displays  information  about  where  the  contents  of files are
370              located.
371
372              See git-annex-whereis(1) for details.
373
374       list [path ...]
375              Displays a table of remotes that contain  the  contents  of  the
376              specified  files.  This is similar to whereis but a more compact
377              display.
378
379              See git-annex-list(1) for details.
380
381       log [path ...]
382              Displays the location log for the specified file or files, show‐
383              ing  each  repository  they were added to ("+") and removed from
384              ("-").
385
386              See git-annex-log(1) for details.
387
388       info [directory|file|remote|uuid ...]
389              Displays statistics and  other  information  for  the  specified
390              item,  which  can be a directory, or a file, or a remote, or the
391              uuid of a repository.
392
393              When no item is specified, displays statistics  and  information
394              for the repository as a whole.
395
396              See git-annex-info(1) for details.
397
398       version
399              Shows  the  version  of git-annex, as well as repository version
400              information.
401
402              See git-annex-version(1) for details.
403
404       map    Generate map of repositories.
405
406              See git-annex-map(1) for details.
407
408       inprogress
409              Access files while they're being downloaded.
410
411              See git-annex-inprogress(1) for details.
412

METADATA COMMANDS

414       metadata [path ...]
415
416              The content of an annexed file can have any number  of  metadata
417              fields attached to it to describe it. Each metadata field can in
418              turn have any number of values.
419
420              This command can be used to set metadata, or show the  currently
421              set metadata.
422
423              See git-annex-metadata(1) for details.
424
425       view   [tag   ...]   [field=value  ...]  [field=glob  ...]  [!tag  ...]
426       [field!=value ...]
427              Uses metadata to build a view branch of the files in the current
428              branch,  and  checks out the view branch. Only files in the cur‐
429              rent branch whose metadata matches all the specified field  val‐
430              ues and tags will be shown in the view.
431
432              See git-annex-view(1) for details.
433
434       vpop [N]
435              Switches  from  the  currently  active view back to the previous
436              view.  Or, from the first view back to original branch.
437
438              See git-annex-vpop(1) for details.
439
440       vfilter [tag ...] [field=value ...] [!tag ...] [field!=value ...]
441              Filters the current view to only the files that have the  speci‐
442              fied field values and tags.
443
444              See git-annex-vfilter(1) for details.
445
446       vadd [field=glob ...] [field=value ...] [tag ...]
447              Changes the current view, adding an additional level of directo‐
448              ries to categorize the files.
449
450              See git-annex-vfilter(1) for details.
451
452       vcycle When a view involves  nested  subdirectories,  this  cycles  the
453              order.
454
455              See git-annex-vcycle(1) for details.
456

UTILITY COMMANDS

458       migrate [path ...]
459
460              Changes the specified annexed files to use a different key-value
461              backend.
462
463              See git-annex-migrate(1) for details.
464
465       reinject src dest
466              Moves the src file into the annex as the  content  of  the  dest
467              file.   This can be useful if you have obtained the content of a
468              file from elsewhere and want to put it in the local annex.
469
470              See git-annex-reinject(1) for details.
471
472       unannex [path ...]
473              Use this to undo an accidental git annex add  command.  It  puts
474              the file back how it was before the add.
475
476              See git-annex-unannex(1) for details.
477
478       uninit De-initialize git-annex and clean out repository.
479
480              See git-annex-uninit(1) for details.
481
482       reinit uuid|description
483              Initialize repository, reusing old UUID.
484
485              See git-annex-reinit(1) for details.
486

PLUMBING COMMANDS

488       pre-commit [path ...]
489
490              This is meant to be called from git's pre-commit hook. git annex
491              init automatically creates a pre-commit hook using this.
492
493              See git-annex-pre-commit(1) for details.
494
495       post-receive
496              This is meant to be called from  git's  post-receive  hook.  git
497              annex init automatically creates a post-receive hook using this.
498
499              See git-annex-post-receive(1) for details.
500
501       lookupkey [file ...]
502              Looks up key used for file.
503
504              See git-annex-lookupkey(1) for details.
505
506       calckey [file ...]
507              Calculates the key that would be used to refer to a file.
508
509              See git-annex-calckey(1) for details.
510
511       contentlocation [key ..]
512              Looks up location of annexed content for a key.
513
514              See git-annex-contentlocation(1) for details.
515
516       examinekey [key ...]
517              Print  information  that  can be determined purely by looking at
518              the key.
519
520              See git-annex-examinekey(1) for details.
521
522       matchexpression
523              Checks if a preferred content expression matches provided data.
524
525              See git-annex-matchexpression(1) for details.
526
527       fromkey [key file]
528              Manually set up a file in the git repository to link to a speci‐
529              fied key.
530
531              See git-annex-fromkey(1) for details.
532
533       registerurl [key url]
534              Registers an url for a key.
535
536              See git-annex-registerurl(1) for details.
537
538       setkey key file
539              Moves a file into the annex as the content of a key.
540
541              See git-annex-setkey(1) for details.
542
543       dropkey [key ...]
544              Drops annexed content for specified keys.
545
546              See git-annex-dropkey(1) for details.
547
548       transferkey key [--from=remote|--to=remote]
549              Transfers a key from or to a remote.
550
551              See git-annex-transferkey(1) for details.
552
553       transferkeys
554              Used internally by the assistant.
555
556              See git-annex-transferkey(1) for details.
557
558       setpresentkey key uuid [1|0]
559              This  plumbing-level  command  changes git-annex's records about
560              whether the specified key's content is present in a remote  with
561              the specified uuid.
562
563              See git-annex-setpresentkey(1) for details.
564
565       readpresentkey key uuid
566              Read records of where key is present.
567
568              See git-annex-readpresentkey(1) for details.
569
570       checkpresentkey key remote
571              Check if key is present in remote.
572
573              See git-annex-checkpresentkey(1) for details.
574
575       rekey [file key ...]
576              Change keys used for files.
577
578              See git-annex-rekey(1) for details.
579
580       findref [ref]
581              Lists files in a git ref. (deprecated)
582
583              See git-annex-findref(1) for details.
584
585       proxy -- git cmd [options]
586              Only useful in a direct mode repository, this runs the specified
587              git command with a temporary work tree, and updates the  working
588              tree  to reflect any changes staged or committed by the git com‐
589              mand.
590
591              See git-annex-proxy(1) for details.
592
593       resolvemerge
594              Resolves a conflicted merge, by adding both conflicting versions
595              of  the file to the tree, using variants of their filename. This
596              is done automatically when using git annex  sync  or  git  annex
597              merge.
598
599              See git-annex-resolvemerge(1) for details.
600
601       diffdriver
602              This  can  be  used to make git diff use an external diff driver
603              with annexed files.
604
605              See git-annex-diffdriver(1) for details.
606
607       smudge This command lets git-annex be used  as  a  git  filter  driver,
608              allowing  annexed  files in the git repository to be unlocked at
609              all times, instead of being symlinks.
610
611              See git-annex-smudge(1) for details.
612
613       remotedaemon
614              Detects when  network  remotes  have  received  git  pushes  and
615              fetches from them.
616
617              See git-annex-remotedaemon(1) for details.
618

TESTING COMMANDS

620       test
621
622              This runs git-annex's built-in test suite.
623
624              See git-annex-test(1) for details.
625
626       testremote remote
627              This  tests a remote by generating some random objects and send‐
628              ing them to the remote, then redownloading them,  removing  them
629              from the remote, etc.
630
631              It's  safe to run in an existing repository (the repository con‐
632              tents are not altered), although it may perform  expensive  data
633              transfers.
634
635              See git-annex-testremote(1) for details.
636
637       fuzztest
638              Generates random changes to files in the current repository, for
639              use in testing the assistant.
640
641              See git-annex-fuzztest(1) for details.
642
643       benchmark
644              This runs git-annex's built-in benchmarks, if it was built  with
645              benchmarking support.
646
647              See git-annex-benchmark(1) for details.
648

COMMON OPTIONS

650       These  common  options  are accepted by all git-annex commands, and may
651       not be explicitly listed on their individual man pages.  (Many commands
652       also accept the git-annex-matching-options(1).)
653
654       --force
655              Force  unsafe actions, such as dropping a file's content when no
656              other source of it can be verified to  still  exist,  or  adding
657              ignored files.  Use with care.
658
659       --fast Enable  less  expensive, but also less thorough versions of some
660              commands.  What is avoided depends on the command.
661
662       --quiet
663              Avoid the default verbose display of what  is  done;  only  show
664              errors.
665
666       --verbose
667              Enable verbose display.
668
669       --debug
670              Show debug messages.
671
672       --no-debug
673              Disable debug messages.
674
675       --numcopies=n
676              Overrides the numcopies setting, forcing git-annex to ensure the
677              specified number of copies exist.
678
679              Note that setting numcopies to 0 is very unsafe.
680
681       --time-limit=time
682              Limits how long a git-annex command runs. The time can be  some‐
683              thing like "5h", or "30m" or even "45s" or "10d".
684
685              Note that git-annex may continue running a little past the spec‐
686              ified time limit, in order to finish processing a file.
687
688              Also, note that if the time limit prevents git-annex from  doing
689              all it was asked to, it will exit with a special code, 101.
690
691       --trust=repository
692
693       --semitrust=repository
694
695       --untrust=repository
696              Overrides trust settings for a repository. May be specified more
697              than once.
698
699              The repository should be specified using the name of  a  config‐
700              ured remote, or the UUID or description of a repository.
701
702       --trust-glacier
703              Amazon  Glacier  inventories take hours to retrieve, and may not
704              represent the current state of a repository. So  git-annex  does
705              not  trust  that  files that the inventory claims are in Glacier
706              are really there.  This switch can be used to allow it to  trust
707              the inventory.
708
709              Be  careful  using this, especially if you or someone else might
710              have recently removed a file from Glacier. If you  try  to  drop
711              the only other copy of the file, and this switch is enabled, you
712              could lose data!
713
714       --backend=name
715              Specifies which key-value backend to use. This can be used  when
716              adding  a file to the annex, or migrating a file. Once files are
717              in the annex, their backend is known and this option is not nec‐
718              essary.
719
720       --user-agent=value
721              Overrides  the User-Agent to use when downloading files from the
722              web.
723
724       --notify-finish
725              Caused a desktop notification to be displayed  after  each  suc‐
726              cessful file download and upload.
727
728              (Only supported on some platforms, e.g. Linux with dbus. A no-op
729              when not supported.)
730
731       --notify-start
732              Caused a desktop notification to be displayed when a file upload
733              or download has started, or when a file is dropped.
734
735       -c name=value
736              Overrides  git configuration settings. May be specified multiple
737              times.
738

CONFIGURATION VIA .git/config

740       Like other git commands, git-annex is configured via .git/config.  Here
741       are all the supported configuration settings.
742
743       annex.uuid
744              A unique UUID for this repository (automatically set).
745
746       annex.backend
747              Name  of  the  default  key-value backend to use when adding new
748              files to the repository.
749
750              This is overridden by annex annex.backend configuration  in  the
751              .gitattributes files, and by the --backend option.
752
753              (This  used  to  be named annex.backends, and that will still be
754              used if set.)
755
756       annex.securehashesonly
757              Set to true to indicate that  the  repository  should  only  use
758              cryptographically  secure  hashes  (SHA2, SHA3) and not insecure
759              hashes (MD5, SHA1) for content.
760
761              When this is set, the contents of files using  cryptographically
762              insecure  hashes  will not be allowed to be added to the reposi‐
763              tory.
764
765              Also, git-annex fsck will complain about any  files  present  in
766              the repository that use insecure hashes.
767
768              To  configure the behavior in new clones of the repository, this
769              can be set in git-annex-config.
770
771       annex.maxextensionlength
772              Maximum length of what is considered a filename  extension  when
773              adding  a  file to a backend that preserves filename extensions.
774              The default length is 4, which allows  extensions  like  "jpeg".
775              The  dot before the extension is not counted part of its length.
776              At most two extensions at the end of a  filename  will  be  pre‐
777              served, e.g. .gz or .tar.gz .
778
779       annex.diskreserve
780              Amount  of  disk  space  to  reserve. Disk space is checked when
781              transferring content to avoid running out, and  additional  free
782              space  can  be  reserved via this option, to make space for more
783              important content (such as git commit logs).  Can  be  specified
784              with  any commonly used units, for example, "0.5 gb", "500M", or
785              "100 KiloBytes"
786
787              The default reserve is 1 megabyte.
788
789       annex.largefiles
790              Used to configure which files are large enough to  be  added  to
791              the annex.  Default: All files.
792
793              Overrides  any  annex.largefiles  attributes  in  .gitattributes
794              files.
795
796              See    <https://git-annex.branchable.com/tips/largefiles>    for
797              details.
798
799       annex.addsmallfiles
800              Controls  whether  small  files  (not matching annex.largefiles)
801              should be checked into git by git annex add. Defaults  to  true;
802              set to false to instead make small files be skipped.
803
804       annex.addunlocked
805              Set  to  true to make commands like git-annex add that add files
806              to the repository add them in unlocked form. The default  is  to
807              add  files  in locked form. This only has effect in v7 reposito‐
808              ries.
809
810              When a repository has core.symlinks set to false, it  implicitly
811              sets annex.addunlocked to true.
812
813       annex.numcopies
814              This  is  a  deprecated  setting. You should instead use the git
815              annex numcopies command to configure how many  copies  of  files
816              are kept across all repositories, or the annex.numcopies .gitat‐
817              tributes setting.
818
819              This config setting is only looked at when git  annex  numcopies
820              has  never  been configured, and when there's no annex.numcopies
821              setting in the .gitattributes file.
822
823              Note that setting numcopies to 0 is very unsafe.
824
825       annex.genmetadata
826              Set this to true to make git-annex automatically  generate  some
827              metadata when adding files to the repository.
828
829              In particular, it stores year, month, and day metadata, from the
830              file's modification date.
831
832              When importfeed is used, it stores additional metadata from  the
833              feed, such as the author, title, etc.
834
835       annex.used-refspec
836              This  controls which refs git-annex unused considers to be used.
837              See REFSPEC FORMAT in git-annex-unused(1) for details.
838
839       annex.jobs
840              Configure the number of concurrent jobs to run. Default is 1.
841
842              Only git-annex commands that support the --jobs option will  use
843              this.
844
845       annex.queuesize
846              git-annex  builds  a  queue of git commands, in order to combine
847              similar commands for speed. By default the size of the queue  is
848              limited  to 10240 commands; this can be used to change the size.
849              If you have plenty of memory and are  working  with  very  large
850              numbers of files, increasing the queue size can speed it up.
851
852       annex.bloomcapacity
853              The git annex unused and git annex sync --content commands use a
854              bloom filter to determine what files are present in eg, the work
855              tree.   The default bloom filter is sized to handle up to 500000
856              files. If your  repository  is  larger  than  that,  you  should
857              increase  this  value.  Larger values will make git-annex unused
858              and git annex sync --content consume more memory; run git  annex
859              info for memory usage numbers.
860
861       annex.bloomaccuracy
862              Adjusts  the  accuracy  of  the  bloom  filter used by git annex
863              unused and git annex sync --content.  The  default  accuracy  is
864              10000000  -- 1 unused file out of 10000000 will be missed by git
865              annex unused. Increasing the accuracy will make git annex unused
866              consume  more  memory;  run git annex info for memory usage num‐
867              bers.
868
869       annex.sshcaching
870              By default, git-annex caches ssh connections  using  ssh's  Con‐
871              trolMaster  and  ControlPersist  settings  (if built using a new
872              enough ssh). To disable this, set to false.
873
874       annex.alwayscommit
875              By default, git-annex automatically commits  data  to  the  git-
876              annex  branch after each command is run. If you have a series of
877              commands that you want to make a single commit, you can run  the
878              commands  with -c annex.alwayscommit=false. You can later commit
879              the data by running git annex merge (or by automatic merges)  or
880              git annex sync.
881
882              You  should beware running git gc when using this configuration,
883              since it could garbage collect objects that are staged  in  git-
884              annex's index but not yet committed.
885
886       annex.commitmessage
887              When git-annex updates the git-annex branch, it usually makes up
888              its own commit message ("update"), since users rarely look at or
889              care about changes to that branch. If you do care, you can spec‐
890              ify this setting by running commands  with  -c  annex.commitmes‐
891              sage=whatever
892
893              This works well in combination with annex.alwayscommit=false, to
894              gather up a set of changes and commit them with  a  message  you
895              specify.
896
897       annex.merge-annex-branches
898              By  default,  git-annex  branches  that  have  been  pulled from
899              remotes  are  automatically  merged  into  the  local  git-annex
900              branch,  so  that  git-annex  has  the  most up-to-date possible
901              knowledge.
902
903              To avoid that merging, set this to "false". This can  be  useful
904              particularly when you don't have write permission to the reposi‐
905              tory.
906
907       annex.hardlink
908              Set this to true to make file contents be  hard  linked  between
909              the  repository and its remotes when possible, instead of a more
910              expensive copy.
911
912              Use with caution --  This  can  invalidate  numcopies  counting,
913              since  with hard links, fewer copies of a file can exist. So, it
914              is a good idea to  mark  a  repository  using  this  setting  as
915              untrusted.
916
917              When  a repository is set up using git clone --shared, git-annex
918              init will automatically set annex.hardlink and mark the  reposi‐
919              tory as untrusted.
920
921       annex.thin
922              Set  this to true to make unlocked files be a hard link to their
923              content in the annex, rather than a second copy. This  can  save
924              considerable  disk  space,  but when a modification is made to a
925              file, you will lose the local (and possibly only)  copy  of  the
926              old version. So, enable with care.
927
928              After  setting (or unsetting) this, you should run git annex fix
929              to fix up the annexed files in the work tree to  be  hard  links
930              (or copies).
931
932              Note  that  this has no effect when the filesystem does not sup‐
933              port hard links.  And when multiple files in the work tree  have
934              the  same  content,  only  one  of  them gets hard linked to the
935              annex.
936
937       annex.delayadd
938              Makes the watch and assistant commands delay for  the  specified
939              number  of  seconds  before  adding  a newly created file to the
940              annex. Normally this is not needed, because  they  already  wait
941              for  all  writers  of the file to close it. On Mac OSX, when not
942              using direct mode this defaults to 1 second, to  work  around  a
943              bad interaction with software there.
944
945       annex.expireunused
946              Controls what the assistant does about unused file contents that
947              are stored in the repository.
948
949              The default is false, which causes all old and unused file  con‐
950              tents  to be retained, unless the assistant is able to move them
951              to some other repository (such as a backup repository).
952
953              Can be set to a time specification, like "7d" or "1m", and  then
954              file  contents that have been known to be unused for a week or a
955              month will be deleted.
956
957       annex.fscknudge
958              When set to false, prevents the webapp from reminding  you  when
959              using repositories that lack consistency checks.
960
961       annex.autoupgrade
962              When  set  to  ask  (the default), the webapp will check for new
963              versions and prompt if they should be upgraded to. When  set  to
964              true,  automatically  upgrades  without  prompting (on some sup‐
965              ported platforms). When  set  to  false,  disables  any  upgrade
966              checking.
967
968              Note  that  upgrade  checking  is  only  done  when git-annex is
969              installed from one of the prebuilt images from its website. This
970              does  not  bypass  e.g., a Linux distribution's own upgrade han‐
971              dling code.
972
973              This setting also controls  whether  to  restart  the  git-annex
974              assistant when the git-annex binary is detected to have changed.
975              That is useful no matter how you installed git-annex.
976
977       annex.autocommit
978              Set to false to prevent the git-annex  assistant  and  git-annex
979              sync  from  automatically  committing  changes  to  files in the
980              repository.
981
982              To configure the behavior in all clones of the repository,  this
983              can be set in git-annex-config.
984
985       annex.resolvemerge
986              Set  to  false  to  prevent  merge  conflicts in the checked out
987              branch being automatically resolved by the  git-annex  assitant,
988              git-annex  sync, git-annex merge, and the git-annex post-receive
989              hook.
990
991              To configure the behavior in all clones of the repository,  this
992              can be set in git-annex-config.
993
994       annex.synccontent
995              Set to true to make git-annex sync default to syncing content.
996
997              To  configure the behavior in all clones of the repository, this
998              can be set in git-annex-config.
999
1000       annex.startupscan
1001              Set to false to prevent the git-annex  assistant  from  scanning
1002              the  repository  for new and changed files on startup. This will
1003              prevent it from noticing changes that were made while it was not
1004              running,  but  can  be  a  useful  performance tweak for a large
1005              repository.
1006
1007       annex.listen
1008              Configures which address the webapp listens on. The  default  is
1009              localhost.   Can  be  either  an  IP address, or a hostname that
1010              resolves to the desired address.
1011
1012       annex.debug
1013              Set to true to enable debug logging by default.
1014
1015       annex.version
1016              Automatically maintained, and used to automate upgrades  between
1017              versions.
1018
1019       annex.direct
1020              Set to true when the repository is in direct mode. Should not be
1021              set manually; use the "git annex direct" and  "git  annex  indi‐
1022              rect" commands instead.
1023
1024       annex.crippledfilesystem
1025              Set  to true if the repository is on a crippled filesystem, such
1026              as FAT, which does not support symbolic links, or hard links, or
1027              unix  permissions.   This  is automatically probed by "git annex
1028              init".
1029
1030       annex.pidlock
1031              Normally, git-annex uses fine-grained lock files to allow multi‐
1032              ple  processes  to run concurrently without getting in each oth‐
1033              ers' way.  That works great, unless you are using git-annex on a
1034              filesystem  that  does  not  support  POSIX fcntl locks. This is
1035              sometimes the case when using NFS or Lustre filesystems.
1036
1037              To support such situations, you can set annex.pidlock  to  true,
1038              and it will fall back to a single top-level pid file lock.
1039
1040              Although,  often,  you'd  really  be better off fixing your net‐
1041              worked filesystem configuration to support  POSIX  locks..  And,
1042              some  networked  filesystems  are  so inconsistent that one node
1043              can't reliably tell when the other node is holding a  pid  lock.
1044              Caveat emptor.
1045
1046       annex.pidlocktimeout
1047              When  using  pid lock files, it's possible for a stale lock file
1048              to get left behind by previous run of git-annex that crashed  or
1049              was  interrupted.   This  is mostly avoided, but can occur espe‐
1050              cially when using a network file system.
1051
1052              git-annex will wait up to this many seconds  for  the  pid  lock
1053              file  to  go  away,  and  will then abort if it cannot continue.
1054              Default: 300
1055
1056       annex.cachecreds
1057              When "true" (the default), git-annex will cache credentials used
1058              to  access  special  remotes  in files in .git/annex/creds/ that
1059              only you can read. To disable that caching, set to "false",  and
1060              credentials  will  only be read from the environment, or if they
1061              have been embedded in encrypted form in the git repository, will
1062              be  extracted  and decrypted each time git-annex needs to access
1063              the remote.
1064
1065       remote.<name>.annex-cost
1066              When determining which repository to transfer annexed files from
1067              or to, ones with lower costs are preferred.  The default cost is
1068              100 for local repositories, and 200 for remote repositories.
1069
1070       remote.<name>.annex-cost-command
1071              If set, the command is run, and the number it outputs is used as
1072              the  cost.  This allows varying the cost based on e.g., the cur‐
1073              rent network.
1074
1075       remote.<name>.annex-start-command
1076              A command to run when git-annex begins to use the  remote.  This
1077              can  be used to, for example, mount the directory containing the
1078              remote.
1079
1080              The command may be run repeatedly when multiple  git-annex  pro‐
1081              cesses are running concurrently.
1082
1083       remote.<name>.annex-stop-command
1084              A command to run when git-annex is done using the remote.
1085
1086              The  command  will only be run once *all* running git-annex pro‐
1087              cesses are finished using the remote.
1088
1089       remote.<name>.annex-shell
1090              Specify an alternative git-annex-shell executable on the  remote
1091              instead of looking for "git-annex-shell" on the PATH.
1092
1093              This  is  useful  if  the git-annex-shell program is outside the
1094              PATH or has a non-standard name.
1095
1096       remote.<name>.annex-ignore
1097              If set to true, prevents git-annex from storing file contents on
1098              this  remote  by  default.  (You can still request it be used by
1099              the --from and --to options.)
1100
1101              This is, for example, useful if the remote is located  somewhere
1102              without  git-annex-shell. (For example, if it's on GitHub).  Or,
1103              it could be used if the network connection between two reposito‐
1104              ries is too slow to be used normally.
1105
1106              This  does  not  prevent git-annex sync (or the git-annex assis‐
1107              tant) from syncing the git repository to the remote.
1108
1109       remote.<name>.annex-ignore-command
1110              If set, the command is run, and if it exits nonzero, that's  the
1111              same  as  setting  annex-ignore to true. This allows controlling
1112              behavior based on e.g., the current network.
1113
1114       remote.<name>.annex-sync
1115              If set to false, prevents  git-annex  sync  (and  the  git-annex
1116              assistant)  from  syncing  with this remote by default. However,
1117              git annex sync <name> can still be used to sync with the remote.
1118
1119       remote.<name>.annex-sync-command
1120              If set, the command is run, and if it exits nonzero, that's  the
1121              same  as  setting  annex-sync  to false. This allows controlling
1122              behavior based on e.g., the current network.
1123
1124       remote.<name>.annex-pull
1125              If set to false, prevents  git-annex  sync  (and  the  git-annex
1126              assistant etc) from ever pulling (or fetching) from the remote.
1127
1128       remote.<name>.annex-push
1129              If  set  to  false,  prevents  git-annex sync (and the git-annex
1130              assistant etc) from ever pushing to the remote.
1131
1132       remote.<name>.annex-readonly
1133              If set to true, prevents git-annex  from  making  changes  to  a
1134              remote.  This both prevents git-annex sync from pushing changes,
1135              and prevents storing or removing files from read-only remote.
1136
1137       remote.<name>.annex-verify, annex.verify
1138              By default, git-annex will verify the checksums of objects down‐
1139              loaded  from  remotes.  If you trust a remote and don't want the
1140              overhead of these checksums, you can set this to false.
1141
1142              Note that even when this is set to false, git-annex does verifi‐
1143              cation  in  some  edge cases, where it's likely the case than an
1144              object was downloaded incorrectly, or when needed for security.
1145
1146       remote.<name>.annex-tracking-branch
1147              This is for use with special remotes that  support  exports  and
1148              imports.
1149
1150              When set to eg, "master", this tells git-annex that you want the
1151              special remote to track that branch.
1152
1153              When set to eg, "master:subdir", the special remote tracks  only
1154              the subdirectory of that branch.
1155
1156              git-annex sync --content will import changes from the remote and
1157              merge them into  the  annex-tracking-branch.  They  also  export
1158              changes made to the branch to the remote.
1159
1160       remote.<name>.annex-export-tracking
1161              Deprecated  name  for  remote.<name>.annex-tracking-branch. Will
1162              still be used if it's configured and  remote.<name>.annex-track‐
1163              ing-branch is not.
1164
1165       remote.<name>.annexUrl
1166              Can  be  used  to  specify  a  different  url  than  the regular
1167              remote.<name>.url for git-annex to use  when  talking  with  the
1168              remote. Similar to the pushUrl used by git-push.
1169
1170       remote.<name>.annex-uuid
1171              git-annex caches UUIDs of remote repositories here.
1172
1173       remote.<name>.annex-retry, annex.retry
1174              Configure  retries  of failed transfers on a per-remote and gen‐
1175              eral basis, respectively. The value is  the  number  of  retries
1176              that can be made of the same transfer. (default 0)
1177
1178       remote.<name>.annex-retry-delay, annex.retry-delay
1179              Number of seconds to delay before the first retry of a transfer.
1180              When making multiple retries of the  same  transfer,  the  delay
1181              doubles after each retry. (default 1)
1182
1183       remote.<name>.annex-checkuuid
1184              This  only  affects  remotes  that  have their url pointing to a
1185              directory on the same system. git-annex normally checks the uuid
1186              of  such remotes each time it's run, which lets it transparently
1187              deal with different drives being mounted to the location at dif‐
1188              ferent times.
1189
1190              Setting  annex-checkuuid  to false will prevent it from checking
1191              the uuid at startup (although the uuid is still verified  before
1192              making any changes to the remote repository). This may be useful
1193              to set to prevent unncessary spin-up or automounting of a drive.
1194
1195       remote.<name>.annex-trustlevel
1196              Configures a local trust level for the  remote.  This  overrides
1197              the  value  configured  by  the  trust and untrust commands. The
1198              value can be any of "trusted", "semitrusted" or "untrusted".
1199
1200       remote.<name>.annex-availability
1201              Can be used to tell git-annex whether a remote is  LocallyAvail‐
1202              able  or  GloballyAvailable. Normally, git-annex determines this
1203              automatically.
1204
1205       remote.<name>.annex-speculate-present
1206              Set to "true" to make git-annex speculate that this  remote  may
1207              contain the content of any file, even though its normal location
1208              tracking does not indicate that it does. This  will  cause  git-
1209              annex  to  try  to get all file contents from the remote. Can be
1210              useful in setting up a caching remote.
1211
1212       remote.<name>.annex-bare
1213              Can be used to tell git-annex if a remote is a  bare  repository
1214              or not. Normally, git-annex determines this automatically.
1215
1216       remote.<name>.annex-ssh-options
1217              Options to use when using ssh to talk to this remote.
1218
1219       remote.<name>.annex-rsync-options
1220              Options  to  use  when  using  rsync to or from this remote. For
1221              example, to force IPv6, and limit the bandwidth  to  100Kbyte/s,
1222              set it to -6 --bwlimit 100
1223
1224              Note  that  git-annex-shell  has  a  whitelist  of allowed rsync
1225              options, and others will not be be passed to the  remote  rsync.
1226              So  using  some  options may break the communication between the
1227              local and remote rsyncs.
1228
1229       remote.<name>.annex-rsync-upload-options
1230              Options to use when using rsync to upload a file to a remote.
1231
1232              These options are passed after other applicable  rsync  options,
1233              so  can  be  used to override them. For example, to limit upload
1234              bandwidth to 10Kbyte/s, set --bwlimit 10.
1235
1236       remote.<name>.annex-rsync-download-options
1237              Options to use when using  rsync  to  download  a  file  from  a
1238              remote.
1239
1240              These  options  are passed after other applicable rsync options,
1241              so can be used to override them.
1242
1243       remote.<name>.annex-rsync-transport
1244              The remote shell to use to connect to the rsync remote. Possible
1245              values  are ssh (the default) and rsh, together with their argu‐
1246              ments, for instance ssh -p  2222  -c  blowfish;  Note  that  the
1247              remote  hostname  should  not  appear  there,  see  rsync(1) for
1248              details.  When the transport used is ssh, connections are  auto‐
1249              matically cached unless annex.sshcaching is unset.
1250
1251       remote.<name>.annex-bup-split-options
1252              Options  to  pass  to  bup  split  when  storing content in this
1253              remote.  For example, to limit the bandwidth to 100Kbyte/s,  set
1254              it  to  --bwlimit 100k (There is no corresponding option for bup
1255              join.)
1256
1257       remote.<name>.annex-gnupg-options
1258              Options  to  pass  to  GnuPG  when  it's  encrypting  data.  For
1259              instance,  to use the AES cipher with a 256 bits key and disable
1260              compression, set  it  to  --cipher-algo  AES256  --compress-algo
1261              none. (These options take precedence over the default GnuPG con‐
1262              figuration, which is otherwise used.)
1263
1264       remote.<name>.annex-gnupg-decrypt-options
1265              Options to pass to  GnuPG  when  it's  decrypting  data.  (These
1266              options  take  precedence  over the default GnuPG configuration,
1267              which is otherwise used.)
1268
1269       annex.ssh-options, annex.rsync-options,
1270              annex.rsync-upload-options,        annex.rsync-download-options,
1271              annex.bup-split-options,                    annex.gnupg-options,
1272              annex.gnupg-decrypt-options
1273
1274              Default options to use if a remote does not have  more  specific
1275              options as described above.
1276
1277       annex.web-options
1278              Options  to pass to curl when git-annex uses it to download urls
1279              (rather than the default built-in url downloader).
1280
1281              For example, to force IPv4 only, set it to  "-4".   Or  to  make
1282              curl use your ~/.netrc file, set it to "--netrc".
1283
1284              Setting  this  option  makes  git-annex  use curl, but only when
1285              annex.security.allowed-http-addresses is configured  in  a  spe‐
1286              cific way. See its documentation.
1287
1288       annex.youtube-dl-options
1289              Options  to  pass to youtube-dl when using it to find the url to
1290              download for a video.
1291
1292              Some options may break git-annex's integration with  youtube-dl.
1293              For  example,  the --output option could cause it to store files
1294              somewhere git-annex won't find them. Avoid setting  here  or  in
1295              the  youtube-dl config file any options that cause youtube-dl to
1296              download more than one file, or to store the file anywhere other
1297              than the current working directory.
1298
1299       annex.aria-torrent-options
1300              Options to pass to aria2c when using it to download a torrent.
1301
1302       annex.http-headers
1303              HTTP  headers  to  send  when downloading from the web. Multiple
1304              lines of this option can be set, one per header.
1305
1306       annex.http-headers-command
1307              If set, the command is run and each line of its output  is  used
1308              as a HTTP header. This overrides annex.http-headers.
1309
1310       annex.security.allowed-url-schemes
1311              List  of  URL schemes that git-annex is allowed to download con‐
1312              tent from.  The default is "http https ftp".
1313
1314              Think very carefully before changing this;  there  are  security
1315              implications. For example, if it's changed to allow "file" URLs,
1316              then anyone who can get a commit into your git-annex  repository
1317              could  git-annex addurl a pointer to a private file located out‐
1318              side that repository, possibly causing it to be copied into your
1319              repository  and  transferred  on  to other remotes, exposing its
1320              content.
1321
1322              Some special  remotes  support  their  own  domain-specific  URL
1323              schemes; those are not affected by this configuration setting.
1324
1325       annex.security.allowed-http-addresses
1326              By  default,  git-annex only makes HTTP connections to public IP
1327              addresses; it will refuse to use HTTP servers on localhost or on
1328              a private network.
1329
1330              This setting can override that behavior, allowing access to par‐
1331              ticular IP addresses. For example "127.0.0.1 ::1" allows  access
1332              to  localhost  (both  IPV4  and IPV6). To allow access to all IP
1333              addresses, use "all"
1334
1335              Think very carefully before changing this;  there  are  security
1336              implications.  Anyone  who  can get a commit into your git-annex
1337              repository could git annex addurl  an  url  on  a  private  http
1338              server,  possibly  causing it to be downloaded into your reposi‐
1339              tory and transferred to other remotes, exposing its content.
1340
1341              Note that, since the interfaces of curl and  youtube-dl  do  not
1342              allow  these  IP  address  restrictions to be enforced, curl and
1343              youtube-dl   will   never    be    used    unless    annex.secu‐
1344              rity.allowed-http-addresses=all.
1345
1346       annex.security.allow-unverified-downloads
1347              For security reasons, git-annex refuses to download content from
1348              most special remotes when it cannot check a hash to verify  that
1349              the  correct  content  was downloaded. This particularly impacts
1350              downloading the content of URL or WORM keys, which lack hashes.
1351
1352              The best way to avoid problems due to this is to  migrate  files
1353              away  from  such  keys,  before  their content reaches a special
1354              remote.  See git-annex-migrate(1).
1355
1356              When the content is only available from a  special  remote,  you
1357              can  use  this  configuration to force git-annex to download it.
1358              But you do so at your own risk, and it's very important you read
1359              and understand the information below first!
1360
1361              Downloading unverified content from encrypted special remotes is
1362              prevented, because the special  remote  could  send  some  other
1363              encrypted  content  than  what  you expect, causing git-annex to
1364              decrypt data that you never checked into git-annex, and  risking
1365              exposing  the  decrypted  data  to any non-encrypted remotes you
1366              send content to.
1367
1368              Downloading unverified  content  from  (non-encrypted)  external
1369              special  remotes  is  prevented,  because they could follow http
1370              redirects to web servers on localhost or on a  private  network,
1371              or in some cases to a file:/// url.
1372
1373              If  you  decide to bypass this security check, the best thing to
1374              do is to only set it temporarily while running the command  that
1375              gets  the  file.   The value to set the config to is "ACKTHPPT".
1376              For example:
1377
1378               git -c annex.security.allow-unverified-downloads=ACKTHPPT annex
1379              get myfile
1380
1381              It would be a good idea to check that it downloaded the file you
1382              expected, too.
1383
1384       remote.name.annex-security-allow-unverified-downloads
1385              Per-remote   configuration    of    annex.security.allow-unveri‐
1386              fied-downloads.
1387
1388       annex.secure-erase-command
1389              This  can  be  set to a command that should be run whenever git-
1390              annex removes the content of a file from the repository.
1391
1392              In the command line, %file is replaced with the file that should
1393              be erased.
1394
1395              For example, to use the wipe command, set it to wipe -f %file.
1396
1397       remote.<name>.rsyncurl
1398              Used  by  rsync special remotes, this configures the location of
1399              the rsync repository to use. Normally this is automatically  set
1400              up by git annex initremote, but you can change it if needed.
1401
1402       remote.<name>.buprepo
1403              Used by bup special remotes, this configures the location of the
1404              bup repository to use. Normally this is automatically set up  by
1405              git annex initremote, but you can change it if needed.
1406
1407       remote.<name>.ddarrepo
1408              Used  by  ddar  special remotes, this configures the location of
1409              the ddar repository to use. Normally this is  automatically  set
1410              up by git annex initremote, but you can change it if needed.
1411
1412       remote.<name>.directory
1413              Used  by directory special remotes, this configures the location
1414              of the directory where annexed files are stored for this remote.
1415              Normally  this  is automatically set up by git annex initremote,
1416              but you can change it if needed.
1417
1418       remote.<name>.adb
1419              Used to identify remotes on Android devices  accessed  via  adb.
1420              Normally this is automatically set up by git annex initremote.
1421
1422       remote.<name>.androiddirectory
1423              Used  by  adb  special  remotes,  this  is  the directory on the
1424              Android device where files are stored for this remote.  Normally
1425              this  is  automatically  set up by git annex initremote, but you
1426              can change it if needed.
1427
1428       remote.<name>.androidserial
1429              Used by adb special remotes, this is the serial  number  of  the
1430              Android  device  used  by the remote. Normally this is automati‐
1431              cally set up by git annex initremote, but you can change  it  if
1432              needed, eg when upgrading to a new Android device.
1433
1434       remote.<name>.s3
1435              Used  to  identify  Amazon S3 special remotes.  Normally this is
1436              automatically set up by git annex initremote.
1437
1438       remote.<name>.glacier
1439              Used to identify Amazon Glacier special remotes.  Normally  this
1440              is automatically set up by git annex initremote.
1441
1442       remote.<name>.webdav
1443              Used to identify webdav special remotes.  Normally this is auto‐
1444              matically set up by git annex initremote.
1445
1446       remote.<name>.tahoe
1447              Used to identify tahoe special remotes.  Points to the  configu‐
1448              ration directory for tahoe.
1449
1450       remote.<name>.gcrypt
1451              Used to identify gcrypt special remotes.  Normally this is auto‐
1452              matically set up by git annex initremote.
1453
1454              It is set to "true" if this is a gcrypt remote.  If  the  gcrypt
1455              remote  is accessible over ssh and has git-annex-shell available
1456              to manage it, it's set to "shell".
1457
1458       remote.<name>.hooktype, remote.<name>.externaltype
1459              Used by hook special remotes and  external  special  remotes  to
1460              record the type of the remote.
1461
1462       annex.tune.objecthash1,  annex.tune.objecthashlower, annex.tune.branch‐
1463       hash1
1464              These can be passed to git annex init to  tune  the  repository.
1465              They cannot be safely changed in a running repository and should
1466              never be set in global  git  configuration.   For  details,  see
1467              <https://git-annex.branchable.com/tuning/>.
1468

CONFIGURATION VIA .gitattributes

1470       The  key-value  backend used when adding a new file to the annex can be
1471       configured on a per-file-type basis via .gitattributes  files.  In  the
1472       file, the annex.backend attribute can be set to the name of the backend
1473       to use. For example, this  here's  how  to  use  the  WORM  backend  by
1474       default, but the SHA256E backend for ogg files:
1475
1476        * annex.backend=WORM
1477        *.ogg annex.backend=SHA256E
1478
1479       There is a annex.largefiles attribute; which is used to configure which
1480       files are large enough to be added to  the  annex.   See  <https://git-
1481       annex.branchable.com/tips/largefiles> for details.
1482
1483       The  numcopies  setting can also be configured on a per-file-type basis
1484       via the annex.numcopies attribute in .gitattributes files.  This  over‐
1485       rides  other numcopies settings.  For example, this makes two copies be
1486       needed for wav files and 3 copies for flac files:
1487
1488        *.wav annex.numcopies=2
1489        *.flac annex.numcopies=3
1490
1491       Note that setting numcopies to 0 is very unsafe.
1492
1493       These settings are honored by git-annex whenever it's  operating  on  a
1494       matching file. However, when using --all, --unused, or --key to specify
1495       keys to operate on, git-annex is operating on keys and  not  files,  so
1496       will  not  honor the settings from .gitattributes. For this reason, the
1497       git annex numcopies command is useful to configure a global default for
1498       numcopies.
1499
1500       Also  note that when using views, only the toplevel .gitattributes file
1501       is preserved in the view, so other settings in other files  won't  have
1502       any effect.
1503

EXIT STATUS

1505       git-annex,  when called as a git subcommand, may return exit codes 0 or
1506       1 for success or failures, or, more rarely, 127 or 128 for certain very
1507       specific  failures.   git-annex itself should return 0 on success and 1
1508       on failure, unless the --time-limit=time option is hit, in  which  case
1509       it returns with exit code 101.
1510

ENVIRONMENT

1512       These environment variables are used by git-annex when set:
1513
1514       GIT_WORK_TREE, GIT_DIR
1515              Handled the same as they are by git, see git(1)
1516
1517       GIT_SSH, GIT_SSH_COMMAND
1518              Handled  similarly  to the same as described in git(1).  The one
1519              difference is that git-annex will sometimes pass  an  additional
1520              "-n"  parameter to these, as the first parameter, to prevent ssh
1521              from reading from stdin. Since that can break existing  uses  of
1522              these  environment variables that don't expect the extra parame‐
1523              ter, you will need to set GIT_ANNEX_USE_GIT_SSH=1 to  make  git-
1524              annex support these.
1525
1526              Note that setting either of these environment variables prevents
1527              git-annex from automatically  enabling  ssh  connection  caching
1528              (see  annex.sshcaching),  so  it  will slow down some operations
1529              with remotes over ssh. It's up to you to enable  ssh  connection
1530              caching if you need it; see ssh's documentation.
1531
1532              Also,   annex.ssh-options   and  remote.<name>.annex-ssh-options
1533              won't have any effect when these envionment variables are set.
1534
1535              Usually it's better to configure  any  desired  options  through
1536              your ~/.ssh/config file, or by setting annex.ssh-options.
1537
1538       GIT_ANNEX_VECTOR_CLOCK
1539              Normally  git-annex  timestamps lines in the log files committed
1540              to the git-annex branch. Setting this environment variable to  a
1541              number will make git-annex use that rather than the current num‐
1542              ber of seconds since the UNIX epoch. Note that  decimal  seconds
1543              are supported.
1544
1545              This  is only provided for advanced users who either have a bet‐
1546              ter way to tell which commit is current than the local clock, or
1547              who  need to avoid embedding timestamps for policy reasons. Mis‐
1548              use  of  this  environment  variable  can  confuse   git-annex's
1549              book-keeping, sometimes in ways that git annex fsck is unable to
1550              repair.
1551
1552              Some special remotes use additional  environment  variables  for
1553              authentication   etc.   For   example,   AWS_ACCESS_KEY_ID   and
1554              GIT_ANNEX_P2P_AUTHTOKEN. See special remote documentation.
1555

FILES

1557       These files are used by git-annex:
1558
1559       .git/annex/objects/ in your git repository contains  the  annexed  file
1560       contents that are currently available. Annexed files in your git repos‐
1561       itory symlink to that content.
1562
1563       .git/annex/ in your git repository contains other run-time  information
1564       used by git-annex.
1565
1566       ~/.config/git-annex/autostart  is  a  list of git repositories to start
1567       the git-annex assistant in.
1568
1569       .git/hooks/pre-commit-annex in your git repository will be run whenever
1570       a  commit  is  made to the HEAD branch, either by git commit, git-annex
1571       sync, or the git-annex assistant.
1572
1573       .git/hooks/post-update-annex in your git repository will be  run  when‐
1574       ever  the  git-annex  branch is updated. You can make this hook run git
1575       update-server-info when publishing a git-annex repository by http.
1576

SEE ALSO

1578       More  git-annex  documentation  is   available   on   its   web   site,
1579       <https://git-annex.branchable.com/>
1580
1581       If  git-annex  is installed from a package, a copy of its documentation
1582       should be included, in, for example, /usr/share/doc/git-annex/.
1583

AUTHOR

1585       Joey Hess <id@joeyh.name>
1586
1587       <https://git-annex.branchable.com/>
1588
1589                                                                  git-annex(1)
Impressum