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

REPOSITORY SETUP COMMANDS

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

REPOSITORY MAINTENANCE COMMANDS

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

QUERY COMMANDS

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

METADATA COMMANDS

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

UTILITY COMMANDS

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

PLUMBING COMMANDS

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

TESTING COMMANDS

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

ADDON COMMANDS

652       In addition to all the commands listed  above,  more  commands  can  be
653       added to git-annex by dropping commands named like "git-annex-foo" into
654       a directory in the PATH.
655

COMMON OPTIONS

657       These common options are accepted by all git-annex  commands,  and  may
658       not be explicitly listed on their individual man pages.  (Many commands
659       also accept the git-annex-matching-options(1).)
660
661       --force
662              Force unsafe actions, such as dropping a file's content when  no
663              other source of it can be verified to still exist, or adding ig‐
664              nored files.  Use with care.
665
666       --fast Enable less expensive, but also less thorough versions  of  some
667              commands.  What is avoided depends on the command.
668
669       --quiet
670              Avoid the default verbose display of what is done; only show er‐
671              rors.
672
673       --verbose
674              Enable verbose display.
675
676       --debug
677              Display debug messages.
678
679       --no-debug
680              Disable display of debug messages.
681
682       --debugfilter=name[,name..]
683              When debug message display has been  enabled  by  --debug,  this
684              filters  the  debug  messages  that are displayed to ones coming
685              from modules with the specified names.
686
687              To find the names of modules, see the full debug  output,  which
688              includes the module name, eg "(Utility.Process)"
689
690              The  full  module  name does not need to be specified when using
691              this, a substring of the name will do.
692
693              For example, --debugfilter=Process,External will display  debug‐
694              ging  output when git-annex runs processes, and when it communi‐
695              cates with external special remotes.
696
697       --numcopies=n
698              Overrides the numcopies setting.
699
700              Note that setting numcopies to 0 is very unsafe.
701
702       --mincopies=n
703              Overrides the mincopies setting.
704
705              Note that setting mincopies to 0 is very unsafe.
706
707       --time-limit=time
708              Limits how long a git-annex command runs. The time can be  some‐
709              thing like "5h", or "30m" or even "45s" or "10d".
710
711              Note that git-annex may continue running a little past the spec‐
712              ified time limit, in order to finish processing a file.
713
714              Also, note that if the time limit prevents git-annex from  doing
715              all it was asked to, it will exit with a special code, 101.
716
717       --semitrust=repository
718
719       --untrust=repository
720              Overrides trust settings for a repository. May be specified more
721              than once.
722
723              The repository should be specified using the name of  a  config‐
724              ured remote, or the UUID or description of a repository.
725
726       --trust=repository
727              This  used  to override trust settings for a repository, but now
728              will not do so, because trusting a repository can lead  to  data
729              loss,  and  data loss is now only enabled when using the --force
730              option.
731
732       --trust-glacier
733              This used to override trust settings  for  Glacier  special  re‐
734              motes,  but  now  will  not do so, because it could lead to data
735              loss, and data loss is now only enabled when using  the  --force
736              option.
737
738       --backend=name
739              Specifies  which key-value backend to use. This can be used when
740              adding a file to the annex, or migrating a file. Once files  are
741              in the annex, their backend is known and this option is not nec‐
742              essary.
743
744       --user-agent=value
745              Overrides the User-Agent to use when downloading files from  the
746              web.
747
748       --notify-finish
749              Caused  a  desktop  notification to be displayed after each suc‐
750              cessful file download and upload.
751
752              (Only supported on some platforms, e.g. Linux with dbus. A no-op
753              when not supported.)
754
755       --notify-start
756              Caused a desktop notification to be displayed when a file upload
757              or download has started, or when a file is dropped.
758
759       -c name=value
760              Overrides git configuration settings. May be specified  multiple
761              times.
762

CONFIGURATION

764       Like  other  git  commands,  git-annex  is  configured via .git/config.
765       These settings, as well as relevant git config settings, are  the  ones
766       git-annex uses.
767
768       (Some  of  these  settings  can  also  be set, across all clones of the
769       repository, using git-annex-config. See its man page for a list.)
770
771       annex.uuid
772              A unique UUID for this repository (automatically set).
773
774       annex.backend
775              Name of the default key-value backend to  use  when  adding  new
776              files to the repository.
777
778              This  is  overridden by annex annex.backend configuration in the
779              .gitattributes files, and by the --backend option.
780
781              (This used to be named annex.backends, and that  will  still  be
782              used if set.)
783
784       annex.securehashesonly
785              Set  to  true  to  indicate  that the repository should only use
786              cryptographically secure hashes (SHA2, SHA3)  and  not  insecure
787              hashes (MD5, SHA1) for content.
788
789              When  this is set, the contents of files using cryptographically
790              insecure hashes will not be allowed to be added to  the  reposi‐
791              tory.
792
793              Also,  git-annex  fsck  will complain about any files present in
794              the repository that use insecure hashes. And,  git-annex  import
795              --no-content  will  refuse  to import files from special remotes
796              using insecure hashes.
797
798              To configure the behavior in new clones of the repository,  this
799              can be set using git-annex-config.
800
801       annex.maxextensionlength
802              Maximum  length,  in bytes, of what is considered a filename ex‐
803              tension when adding a file to a backend that preserves  filename
804              extensions.  The  default  length  is 4, which allows extensions
805              like "jpeg". The dot before the extension is not counted part of
806              its length. At most two extensions at the end of a filename will
807              be preserved, e.g. .gz or .tar.gz .
808
809       annex.diskreserve
810              Amount of disk space to reserve.  Disk  space  is  checked  when
811              transferring  content  to avoid running out, and additional free
812              space can be reserved via this option, to make  space  for  more
813              important  content  (such  as git commit logs). Can be specified
814              with any commonly used units, for example, "0.5 gb", "500M",  or
815              "100 KiloBytes"
816
817              The default reserve is 1 megabyte.
818
819       annex.skipunknown
820              Set  to true to make commands like "git-annex get" silently skip
821              over items that are listed in the  command  line,  but  are  not
822              checked into git.
823
824              Set  to  false  to make it an error for commands like "git-annex
825              get" to be asked to operate on files that are not  checked  into
826              git.
827
828              The default is currently true, but is planned to change to false
829              in a release in 2022.
830
831              Note that, when annex.skipunknown is false, a command like "git-
832              annex get ."  will fail if no files in the current directory are
833              checked into git, but a command like "git-annex  get"  will  not
834              fail,  because  the  current directory is not listed, but is im‐
835              plicit. Commands like "git-annex get foo/" will fail if no files
836              in  the directory are checked into git, but if at least one file
837              is, it will ignore other files that are not.  This  is  all  the
838              same as the behavior of "git-ls files --error-unmatch".
839
840              Also  note that git-annex skips files that are checked into git,
841              but are not annexed files, this setting does not affect that.
842
843       annex.largefiles
844              Used to configure which files are large enough to  be  added  to
845              the annex.  It is an expression that matches the large files, eg
846              "include=*.mp3 or largerthan=500kb"  See  git-annex-matching-ex‐
847              pression(1) for details on the syntax.
848
849              Overrides  any  annex.largefiles  attributes  in  .gitattributes
850              files.
851
852              To configure a default annex.largefiles for all  clones  of  the
853              repository, this can be set in git-annex-config(1).
854
855              This  configures  the  behavior  of  both git-annex and git when
856              adding files to the repository. By default, git-annex  add  adds
857              all files to the annex (except dotfiles), and git add adds files
858              to git (unless they were added to the annex  previously).   When
859              annex.largefiles  is  configured, both git annex add and git add
860              will add matching large files to the annex, and the other  files
861              to git.
862
863              Other  git-annex commands also honor annex.largefiles, including
864              git annex import, git annex addurl, git annex importfeed and the
865              assistant.
866
867       annex.dotfiles
868              Normally,  dotfiles  are  assumed  to  be files like .gitignore,
869              whose content should always be part of the  git  repository,  so
870              they  will  not be added to the annex. Setting annex.dotfiles to
871              true makes dotfiles be added to the annex the same as any  other
872              file.
873
874              To annex only some dotfiles, set this and configure annex.large‐
875              files to match the ones you want. For  example,  to  match  only
876              dotfiles ending in ".big"
877
878               git    config    annex.largefiles   "(include=.*.big   or   in‐
879              clude=*/.*.big) or (exclude=.* and exclude=*/.*)"
880               git config annex.dotfiles true
881
882              To configure a default annex.dotfiles  for  all  clones  of  the
883              repository, this can be set in git-annex-config(1).
884
885       annex.gitaddtoannex
886              Setting  this to false will prevent git add from adding files to
887              the annex, despite the annex.largefiles configuration.
888
889       annex.addsmallfiles
890              Controls whether small  files  (not  matching  annex.largefiles)
891              should  be  checked into git by git annex add. Defaults to true;
892              set to false to instead make small files be skipped.
893
894       annex.addunlocked
895              Commands like git-annex add  default  to  adding  files  to  the
896              repository  in  locked form. This can make them add the files in
897              unlocked form, the same as if git-annex-unlock(1)  were  run  on
898              the files.
899
900              This  can be set to "true" to add everything unlocked, or it can
901              be a more complicated expression that  matches  files  by  name,
902              size,  or  content. See git-annex-matching-expression(1) for de‐
903              tails.
904
905              To configure a default annex.addunlocked for all clones  of  the
906              repository, this can be set in git-annex-config(1).
907
908              (Using  git add always adds files in unlocked form and it is not
909              affected by this setting.)
910
911              When a repository has core.symlinks set to false, or has an  ad‐
912              justed unlocked branch checked out, this setting is ignored, and
913              files are always added to the repository in unlocked form.
914
915       annex.numcopies
916              This is a deprecated setting. You should instead use the git an‐
917              nex  numcopies command to configure how many copies of files are
918              kept across all repositories,  or  the  annex.numcopies  .gitat‐
919              tributes setting.
920
921              This  config  setting is only looked at when git annex numcopies
922              has never been configured, and when there's  no  annex.numcopies
923              setting in the .gitattributes file.
924
925              Note that setting numcopies to 0 is very unsafe.
926
927       annex.genmetadata
928              Set  this  to true to make git-annex automatically generate some
929              metadata when adding files to the repository.
930
931              In particular, it stores year, month, and day metadata, from the
932              file's modification date.
933
934              When  importfeed is used, it stores additional metadata from the
935              feed, such as the author, title, etc.
936
937       annex.used-refspec
938              This controls which refs git-annex unused considers to be  used.
939              See REFSPEC FORMAT in git-annex-unused(1) for details.
940
941       annex.jobs
942              Configure the number of concurrent jobs to run. Default is 1.
943
944              Only  git-annex commands that support the --jobs option will use
945              this.
946
947              Setting this to "cpus" will run one job per CPU core.
948
949              When the --batch option is used, this configuration is ignored.
950
951       annex.adjustedbranchrefresh
952              When git-annex-adjust(1) is used to set up  an  adjusted  branch
953              that needs to be refreshed after getting or dropping files, this
954              config controls how frequently the branch is refreshed.
955
956              Refreshing the branch takes some time, so doing it  after  every
957              file  can  be  too slow. (It also can generate a lot of dangling
958              git objects.)  The default value is 0 (or false), which does not
959              refresh  the branch. Setting 1 (or true) will refresh only once,
960              after git-annex has made other changes. Setting 2 refreshes  af‐
961              ter every file, 3 after every other file, and so on; setting 100
962              refreshes after every 99 files.
963
964              (If git-annex gets faster in the future, refresh rates will  in‐
965              crease proportional to the speed improvements.)
966
967       annex.queuesize
968              git-annex  builds  a  queue of git commands, in order to combine
969              similar commands for speed. By default the size of the queue  is
970              limited  to 10240 commands; this can be used to change the size.
971              If you have plenty of memory and are  working  with  very  large
972              numbers of files, increasing the queue size can speed it up.
973
974       annex.bloomcapacity
975              The git annex unused and git annex sync --content commands use a
976              bloom filter to determine what files are present in eg, the work
977              tree.   The default bloom filter is sized to handle up to 500000
978              files. If your repository is larger than that,  you  should  in‐
979              crease  this value. Larger values will make git-annex unused and
980              git annex sync --content consume more memory; run git annex info
981              for memory usage numbers.
982
983       annex.bloomaccuracy
984              Adjusts  the  accuracy of the bloom filter used by git annex un‐
985              used and git annex sync  --content.   The  default  accuracy  is
986              10000000  -- 1 unused file out of 10000000 will be missed by git
987              annex unused. Increasing the accuracy will make git annex unused
988              consume  more  memory;  run git annex info for memory usage num‐
989              bers.
990
991       annex.sshcaching
992              By default, git-annex caches ssh connections  using  ssh's  Con‐
993              trolMaster  and  ControlPersist  settings  (if built using a new
994              enough ssh). To disable this, set to false.
995
996       annex.alwayscommit
997              By default, git-annex automatically commits data to the  git-an‐
998              nex  branch  after  each command is run. If you have a series of
999              commands that you want to make a single commit, you can run  the
1000              commands  with -c annex.alwayscommit=false. You can later commit
1001              the data by running git annex merge (or by automatic merges)  or
1002              git annex sync.
1003
1004       annex.commitmessage
1005              When git-annex updates the git-annex branch, it usually makes up
1006              its own commit message ("update"), since users rarely look at or
1007              care about changes to that branch. If you do care, you can spec‐
1008              ify this setting by running commands  with  -c  annex.commitmes‐
1009              sage=whatever
1010
1011              This works well in combination with annex.alwayscommit=false, to
1012              gather up a set of changes and commit them with  a  message  you
1013              specify.
1014
1015       annex.allowsign
1016              By  default  git-annex  avoids gpg signing commits that it makes
1017              when they're not the purpose of a command, but only a  side  ef‐
1018              fect.   That  default  avoids  lots of gpg password prompts when
1019              commit.gpgSign is set. A command like git annex sync or git  an‐
1020              nex merge will gpg sign its commit, but a command like git annex
1021              get, that updates the git-annex branch, will not. The  assistant
1022              also avoids signing commits.
1023
1024              Setting  annex.allowsign  to true lets all commits be signed, as
1025              controlled by commit.gpgSign and other git configuration.
1026
1027       annex.merge-annex-branches
1028              By default, git-annex branches that have been  pulled  from  re‐
1029              motes  are automatically merged into the local git-annex branch,
1030              so that git-annex has the most up-to-date possible knowledge.
1031
1032              To avoid that merging, set this to "false". This can  be  useful
1033              particularly when you don't have write permission to the reposi‐
1034              tory.
1035
1036       annex.private
1037              When this is set to true, no information  about  the  repository
1038              will be recorded in the git-annex branch.
1039
1040              For example, to make a repository without any mention of it ever
1041              appearing in the git-annex branch:
1042
1043               git init myprivate
1044               cd myprivaterepo
1045               git config annex.private true
1046               git annex init
1047
1048       annex.hardlink
1049              Set this to true to make file contents be  hard  linked  between
1050              the  repository and its remotes when possible, instead of a more
1051              expensive copy.
1052
1053              Use with caution --  This  can  invalidate  numcopies  counting,
1054              since  with hard links, fewer copies of a file can exist. So, it
1055              is a good idea to mark a repository using this  setting  as  un‐
1056              trusted.
1057
1058              When  a repository is set up using git clone --shared, git-annex
1059              init will automatically set annex.hardlink and mark the  reposi‐
1060              tory as untrusted.
1061
1062              When  annex.thin  is also set, setting annex.hardlink has no ef‐
1063              fect.
1064
1065       annex.thin
1066              Set this to true to make unlocked files be a hard link to  their
1067              content  in  the annex, rather than a second copy. This can save
1068              considerable disk space, but when a modification is  made  to  a
1069              file,  you  will  lose the local (and possibly only) copy of the
1070              old version. So, enable with care.
1071
1072              After setting (or unsetting) this, you should run git annex  fix
1073              to  fix  up  the annexed files in the work tree to be hard links
1074              (or copies).
1075
1076              Note that this has no effect when the filesystem does  not  sup‐
1077              port  hard links.  And when multiple files in the work tree have
1078              the same content, only one of them gets hard linked to  the  an‐
1079              nex.
1080
1081       annex.supportunlocked
1082              By  default  git-annex supports unlocked files as well as locked
1083              files, so this defaults to true. If set to false, git-annex will
1084              only support locked files. That will avoid doing the work needed
1085              to support unlocked files.
1086
1087              Note that setting this to false does not  prevent  a  repository
1088              from  having  unlocked  files  added to it, and in that case the
1089              content of the files will  not  be  accessible  until  they  are
1090              locked.
1091
1092              After  changing  this  config, you need to re-run git-annex init
1093              for it to take effect.
1094
1095       annex.resolvemerge
1096              Set to false to prevent  merge  conflicts  in  the  checked  out
1097              branch  being  automatically resolved by the git-annex assitant,
1098              git-annex sync, git-annex merge, and the git-annex  post-receive
1099              hook.
1100
1101              To  configure the behavior in all clones of the repository, this
1102              can be set in git-annex-config(1).
1103
1104       annex.synccontent
1105              Set to true to make git-annex sync default  to  syncing  annexed
1106              content.
1107
1108              To  configure the behavior in all clones of the repository, this
1109              can be set in git-annex-config(1).
1110
1111       annex.synconlyannex
1112              Set to true to make git-annex sync default to only  sincing  the
1113              git-annex branch and annexed content.
1114
1115              To  configure the behavior in all clones of the repository, this
1116              can be set in git-annex-config(1).
1117
1118       annex.debug
1119              Set to true to enable debug logging by default.
1120
1121       annex.debugfilter
1122              Set to configure which debug messages  to  display  (when  debug
1123              message display has been enabled by annex.debug or --debug). The
1124              value is one or more module names, separated by commas.
1125
1126       annex.version
1127              The current version of the git-annex repository. This  is  main‐
1128              tained by git-annex and should never be manually changed.
1129
1130       annex.autoupgraderepository
1131              When  an old git-annex repository version has become deprecated,
1132              git-annex will normally automatically upgrade the repository  to
1133              the new version.
1134
1135              If  this  is set to false, git-annex won't automatically upgrade
1136              the repository. Instead it will exit with an error message.  You
1137              can run git annex upgrade yourself when you are ready to upgrade
1138              the repository.
1139
1140       annex.crippledfilesystem
1141              Set to true if the repository is on a crippled filesystem,  such
1142              as FAT, which does not support symbolic links, or hard links, or
1143              unix permissions.  This is automatically probed  by  "git  annex
1144              init".
1145
1146       annex.pidlock
1147              Normally, git-annex uses fine-grained lock files to allow multi‐
1148              ple processes to run concurrently without getting in  each  oth‐
1149              ers' way.  That works great, unless you are using git-annex on a
1150              filesystem that does not support  POSIX  fcntl  locks.  This  is
1151              sometimes the case when using NFS or Lustre filesystems.
1152
1153              To  support  such situations, you can set annex.pidlock to true,
1154              and it will fall back to a single top-level pid file lock.
1155
1156              Although, often, you'd really be better  off  fixing  your  net‐
1157              worked  filesystem  configuration  to support POSIX locks.. And,
1158              some networked filesystems are so  inconsistent  that  one  node
1159              can't  reliably  tell when the other node is holding a pid lock.
1160              Caveat emptor.
1161
1162       annex.pidlocktimeout
1163              git-annex will wait up to this many seconds  for  the  pid  lock
1164              file  to go away, and will then abort if it cannot continue. De‐
1165              fault: 300
1166
1167              When using pid lock files, it's possible for a stale  lock  file
1168              to  get left behind by previous run of git-annex that crashed or
1169              was interrupted.  This is mostly avoided, but  can  occur  espe‐
1170              cially  when  using a network file system. This timeout prevents
1171              git-annex waiting forever in such a situation.
1172
1173       annex.cachecreds
1174              When "true" (the default), git-annex will cache credentials used
1175              to  access  special  remotes  in files in .git/annex/creds/ that
1176              only you can read. To disable that caching, set to "false",  and
1177              credentials  will  only be read from the environment, or if they
1178              have been embedded in encrypted form in the git repository, will
1179              be  extracted  and decrypted each time git-annex needs to access
1180              the remote.
1181
1182       annex.secure-erase-command
1183              This can be set to a command that should be run whenever git-an‐
1184              nex removes the content of a file from the repository.
1185
1186              In the command line, %file is replaced with the file that should
1187              be erased.
1188
1189              For example, to use the wipe command, set it to wipe -f %file.
1190
1191       annex.tune.objecthash1, annex.tune.objecthashlower,  annex.tune.branch‐
1192       hash1
1193              These  can  be  passed to git annex init to tune the repository.
1194              They cannot be safely changed in a running repository and should
1195              never  be  set  in  global  git configuration.  For details, see
1196              <https://git-annex.branchable.com/tuning/>.
1197

CONFIGURATION OF REMOTES

1199       Remotes are configured using these settings in .git/config.
1200
1201       remote.<name>.annex-cost
1202              When determining which repository to transfer annexed files from
1203              or to, ones with lower costs are preferred.  The default cost is
1204              100 for local repositories, and 200 for remote repositories.
1205
1206       remote.<name>.annex-cost-command
1207              If set, the command is run, and the number it outputs is used as
1208              the  cost.  This allows varying the cost based on e.g., the cur‐
1209              rent network.
1210
1211       remote.<name>.annex-start-command
1212              A command to run when git-annex begins to use the  remote.  This
1213              can  be used to, for example, mount the directory containing the
1214              remote.
1215
1216              The command may be run repeatedly when multiple  git-annex  pro‐
1217              cesses are running concurrently.
1218
1219       remote.<name>.annex-stop-command
1220              A command to run when git-annex is done using the remote.
1221
1222              The  command  will only be run once *all* running git-annex pro‐
1223              cesses are finished using the remote.
1224
1225       remote.<name>.annex-shell
1226              Specify an alternative git-annex-shell executable on the  remote
1227              instead of looking for "git-annex-shell" on the PATH.
1228
1229              This  is  useful  if  the git-annex-shell program is outside the
1230              PATH or has a non-standard name.
1231
1232       remote.<name>.annex-ignore
1233              If set to true, prevents git-annex from storing file contents on
1234              this  remote  by  default.  (You can still request it be used by
1235              the --from and --to options.)
1236
1237              This is, for example, useful if the remote is located  somewhere
1238              without  git-annex-shell. (For example, if it's on GitHub).  Or,
1239              it could be used if the network connection between two reposito‐
1240              ries is too slow to be used normally.
1241
1242              This  does  not prevent git-annex sync (or the git-annex assist‐
1243              ant) from syncing the git repository to the remote.
1244
1245       remote.<name>.annex-ignore-command
1246              If set, the command is run, and if it exits nonzero, that's  the
1247              same  as  setting  annex-ignore to true. This allows controlling
1248              behavior based on e.g., the current network.
1249
1250       remote.<name>.annex-sync
1251              If set to false, prevents git-annex sync (and the git-annex  as‐
1252              sistant)  from syncing with this remote by default. However, git
1253              annex sync <name> can still be used to sync with the remote.
1254
1255       remote.<name>.annex-sync-command
1256              If set, the command is run, and if it exits nonzero, that's  the
1257              same as setting annex-sync to false. This allows controlling be‐
1258              havior based on e.g., the current network.
1259
1260       remote.<name>.annex-pull
1261              If set to false, prevents git-annex sync (and the git-annex  as‐
1262              sistant etc) from ever pulling (or fetching) from the remote.
1263
1264       remote.<name>.annex-push
1265              If  set to false, prevents git-annex sync (and the git-annex as‐
1266              sistant etc) from ever pushing to the remote.
1267
1268       remote.<name>.annex-readonly
1269              If set to true, prevents git-annex from making changes to a  re‐
1270              mote.   This  both prevents git-annex sync from pushing changes,
1271              and prevents storing or removing files from read-only remote.
1272
1273       remote.<name>.annex-verify, annex.verify
1274              By default, git-annex will verify the checksums of objects down‐
1275              loaded  from  remotes.  If you trust a remote and don't want the
1276              overhead of these checksums, you can set this to false.
1277
1278              Note that even when this is set to false, git-annex does verifi‐
1279              cation  in  some  edge cases, where it's likely the case than an
1280              object was downloaded incorrectly, or when needed for security.
1281
1282       remote.<name>.annex-tracking-branch
1283              This is for use with special remotes that  support  exports  and
1284              imports.
1285
1286              When set to eg, "master", this tells git-annex that you want the
1287              special remote to track that branch.
1288
1289              When set to eg, "master:subdir", the special remote tracks  only
1290              the subdirectory of that branch.
1291
1292              git-annex sync --content will import changes from the remote and
1293              merge them into  the  annex-tracking-branch.  They  also  export
1294              changes made to the branch to the remote.
1295
1296       remote.<name>.annex-export-tracking
1297              Deprecated  name  for  remote.<name>.annex-tracking-branch. Will
1298              still be used if it's configured and  remote.<name>.annex-track‐
1299              ing-branch is not.
1300
1301       remote.<name>.annexUrl
1302              Can  be  used  to  specify  a different url than the regular re‐
1303              mote.<name>.url for git-annex to use when talking with  the  re‐
1304              mote. Similar to the pushUrl used by git-push.
1305
1306       remote.<name>.annex-uuid
1307              git-annex caches UUIDs of remote repositories here.
1308
1309       remote.<name>.annex-config-uuid
1310              Used for some special remotes, points to a different special re‐
1311              mote configuration to use.
1312
1313       remote.<name>.annex-retry, annex.retry
1314              Number of times a transfer that fails can be  retried.  (default
1315              0)
1316
1317       remote.<name>.annex-forward-retry, annex.forward-retry
1318              If  a  transfer  made some forward progress before failing, this
1319              allows it to be retried even when  annex.retry  does  not.   The
1320              value is the maximum number of times to do that. (default 5)
1321
1322              When  both  annex.retry  and this are set, the maximum number of
1323              retries is the larger of the two.
1324
1325       remote.<name>.annex-retry-delay, annex.retry-delay
1326              Number of seconds to delay before the first retry of a transfer.
1327              When  making  multiple  retries  of the same transfer, the delay
1328              doubles after each retry. (default 1)
1329
1330       remote.<name>.annex-stalldetecton, annex.stalldetection
1331              Configuring this lets stalled or too-slow transfers be detected,
1332              and  dealt  with,  so  rather than getting stuck, git-annex will
1333              cancel the stalled operation. The transfer will be considered to
1334              have  failed,  so settings like annex.retry will control what it
1335              does next.
1336
1337              By default,  git-annex  detects  transfers  that  have  probably
1338              stalled, and suggests configuring this. If it is incorrectly de‐
1339              tecting stalls, setting this to "false" will avoid that.
1340
1341              Set to "true" to enable automatic stall detection. If  a  remote
1342              does  not  update  its progress consistently, no automatic stall
1343              detection will be done. And it may take a while for git-annex to
1344              decide a remote is really stalled when using automatic stall de‐
1345              tection, since it needs to be conservative about what looks like
1346              a stall.
1347
1348              For  more  fine  control over what constitutes a stall, set to a
1349              value in the form "$amount/$timeperiod" to specify how much data
1350              git-annex  should  expect  to see flowing, minimum, over a given
1351              period of time.
1352
1353              For example, to detect outright stalls where no  data  has  been
1354              transferred  after  30  seconds: git config annex.stalldetection
1355              "1KB/30s"
1356
1357              Or, if you have a remote on a USB drive that is normally capable
1358              of  several  megabytes  per second, but has bad sectors where it
1359              gets stuck for a long time, you could use: git config remote.us‐
1360              bdrive.annex-stalldetection "1MB/1m"
1361
1362              This  is  not  enabled by default, because it can make git-annex
1363              use more resources. To be able to cancel stalls,  git-annex  has
1364              to run transfers in separate processes (one per concurrent job).
1365              So it may need to open more connections to a remote than  usual,
1366              or  the  communication  with  those  processes may make it a bit
1367              slower.
1368
1369       remote.<name>.annex-checkuuid
1370              This only affects remotes that have their url pointing to a  di‐
1371              rectory  on  the same system. git-annex normally checks the uuid
1372              of such remotes each time it's run, which lets it  transparently
1373              deal with different drives being mounted to the location at dif‐
1374              ferent times.
1375
1376              Setting annex-checkuuid to false will prevent it  from  checking
1377              the  uuid at startup (although the uuid is still verified before
1378              making any changes to the remote repository). This may be useful
1379              to set to prevent unncessary spin-up or automounting of a drive.
1380
1381       remote.<name>.annex-trustlevel
1382              Configures  a  local  trust level for the remote. This overrides
1383              the value configured by the  trust  and  untrust  commands.  The
1384              value can be any of "trusted", "semitrusted" or "untrusted".
1385
1386       remote.<name>.annex-availability
1387              Can  be used to tell git-annex whether a remote is LocallyAvail‐
1388              able or GloballyAvailable. Normally, git-annex  determines  this
1389              automatically.
1390
1391       remote.<name>.annex-speculate-present
1392              Set  to  "true" to make git-annex speculate that this remote may
1393              contain the content of any file, even though its normal location
1394              tracking does not indicate that it does. This will cause git-an‐
1395              nex to try to get all file contents from the remote. Can be use‐
1396              ful in setting up a caching remote.
1397
1398       remote.<name>.annex-private
1399              When  this  is set to true, no information about the remote will
1400              be recorded in the git-annex branch. This is mostly  useful  for
1401              special  remotes,  and is set when using git-annex-initremote(1)
1402              with the --private option.
1403
1404       remote.<name>.annex-bare
1405              Can be used to tell git-annex if a remote is a  bare  repository
1406              or not. Normally, git-annex determines this automatically.
1407
1408       remote.<name>.annex-ssh-options
1409              Options to use when using ssh to talk to this remote.
1410
1411       remote.<name>.annex-rsync-options
1412              Options  to use when using rsync to or from this remote. For ex‐
1413              ample, to force IPv6, and limit the bandwidth to 100Kbyte/s, set
1414              it to -6 --bwlimit 100
1415
1416              Note  that  git-annex-shell has a whitelist of allowed rsync op‐
1417              tions, and others will not be be passed to the remote rsync.  So
1418              using some options may break the communication between the local
1419              and remote rsyncs.
1420
1421       remote.<name>.annex-rsync-upload-options
1422              Options to use when using rsync to upload a file to a remote.
1423
1424              These options are passed after other applicable  rsync  options,
1425              so  can  be  used to override them. For example, to limit upload
1426              bandwidth to 10Kbyte/s, set --bwlimit 10.
1427
1428       remote.<name>.annex-rsync-download-options
1429              Options to use when using rsync to download a file  from  a  re‐
1430              mote.
1431
1432              These  options  are passed after other applicable rsync options,
1433              so can be used to override them.
1434
1435       remote.<name>.annex-rsync-transport
1436              The remote shell to use to connect to the rsync remote. Possible
1437              values  are ssh (the default) and rsh, together with their argu‐
1438              ments, for instance ssh -p 2222 -c blowfish; Note that  the  re‐
1439              mote hostname should not appear there, see rsync(1) for details.
1440              When the transport used is ssh,  connections  are  automatically
1441              cached unless annex.sshcaching is unset.
1442
1443       remote.<name>.annex-bup-split-options
1444              Options  to  pass  to bup split when storing content in this re‐
1445              mote.  For example, to limit the bandwidth to 100Kbyte/s, set it
1446              to  --bwlimit  100k  (There  is  no corresponding option for bup
1447              join.)
1448
1449       remote.<name>.annex-gnupg-options
1450              Options to pass to GnuPG when  it's  encrypting  data.  For  in‐
1451              stance,  to  use  the AES cipher with a 256 bits key and disable
1452              compression, set  it  to  --cipher-algo  AES256  --compress-algo
1453              none. (These options take precedence over the default GnuPG con‐
1454              figuration, which is otherwise used.)
1455
1456       remote.<name>.annex-gnupg-decrypt-options
1457              Options to pass to GnuPG when it's decrypting data.  (These  op‐
1458              tions  take  precedence  over  the  default GnuPG configuration,
1459              which is otherwise used.)
1460
1461       annex.ssh-options, annex.rsync-options,
1462              annex.rsync-upload-options,  annex.rsync-download-options,   an‐
1463              nex.bup-split-options,    annex.gnupg-options,   annex.gnupg-de‐
1464              crypt-options
1465
1466              Default options to use if a remote does not have  more  specific
1467              options as described above.
1468
1469       remote.<name>.annex-rsyncurl
1470              Used  by  rsync special remotes, this configures the location of
1471              the rsync repository to use. Normally this is automatically  set
1472              up by git annex initremote, but you can change it if needed.
1473
1474       remote.<name>.annex-buprepo
1475              Used by bup special remotes, this configures the location of the
1476              bup repository to use. Normally this is automatically set up  by
1477              git annex initremote, but you can change it if needed.
1478
1479       remote.<name>.annex-borgrepo
1480              Used  by  borg  special remotes, this configures the location of
1481              the borg repository to use. Normally this is  automatically  set
1482              up by git annex initremote, but you can change it if needed.
1483
1484       remote.<name>.annex-ddarrepo
1485              Used  by  ddar  special remotes, this configures the location of
1486              the ddar repository to use. Normally this is  automatically  set
1487              up by git annex initremote, but you can change it if needed.
1488
1489       remote.<name>.annex-directory
1490              Used  by directory special remotes, this configures the location
1491              of the directory where annexed files are stored for this remote.
1492              Normally  this  is automatically set up by git annex initremote,
1493              but you can change it if needed.
1494
1495       remote.<name>.annex-adb
1496              Used to identify remotes on Android devices  accessed  via  adb.
1497              Normally this is automatically set up by git annex initremote.
1498
1499       remote.<name>.annex-androiddirectory
1500              Used  by  adb  special remotes, this is the directory on the An‐
1501              droid device where files are stored for  this  remote.  Normally
1502              this  is  automatically  set up by git annex initremote, but you
1503              can change it if needed.
1504
1505       remote.<name>.annex-androidserial
1506              Used by adb special remotes, this is the serial  number  of  the
1507              Android  device  used  by the remote. Normally this is automati‐
1508              cally set up by git annex initremote, but you can change  it  if
1509              needed, eg when upgrading to a new Android device.
1510
1511       remote.<name>.annex-s3
1512              Used  to  identify  Amazon S3 special remotes.  Normally this is
1513              automatically set up by git annex initremote.
1514
1515       remote.<name>.annex-glacier
1516              Used to identify Amazon Glacier special remotes.  Normally  this
1517              is automatically set up by git annex initremote.
1518
1519       remote.<name>.annex-webdav
1520              Used to identify webdav special remotes.  Normally this is auto‐
1521              matically set up by git annex initremote.
1522
1523       remote.<name>.annex-tahoe
1524              Used to identify tahoe special remotes.  Points to the  configu‐
1525              ration directory for tahoe.
1526
1527       remote.<name>.annex-gcrypt
1528              Used to identify gcrypt special remotes.  Normally this is auto‐
1529              matically set up by git annex initremote.
1530
1531              It is set to "true" if this is a gcrypt remote.  If  the  gcrypt
1532              remote  is accessible over ssh and has git-annex-shell available
1533              to manage it, it's set to "shell".
1534
1535       remote.<name>.annex-git-lfs
1536              Used to identify git-lfs special remotes.  Normally this is  au‐
1537              tomatically set up by git annex initremote.
1538
1539              It is set to "true" if this is a git-lfs remote.
1540
1541       remote.<name>.annex-httpalso
1542              Used to identify httpalso special remotes.  Normally this is au‐
1543              tomatically set up by git annex initremote.
1544
1545       remote.<name>.annex-externaltype
1546              Used external special remotes to record the type of the remote.
1547
1548              Eg, if this is set to "foo", git-annex will run a "git-annex-re‐
1549              mote-foo"  program  to communicate with the external special re‐
1550              mote.
1551
1552              If this is set to "readonly", then git-annex will  not  run  any
1553              external  special  remote program, but will try to access things
1554              stored in the remote using http. That only works for some exter‐
1555              nal special remotes, so consult the documentation of the one you
1556              are using.
1557
1558       remote.<name>.annex-hooktype
1559              Used by hook special remotes to record the type of the remote.
1560
1561       annex.web-options
1562              Options to pass to curl when git-annex uses it to download  urls
1563              (rather than the default built-in url downloader).
1564
1565              For  example,  to  force  IPv4 only, set it to "-4".  Or to make
1566              curl use your ~/.netrc file, set it to "--netrc".
1567
1568              Setting this option makes git-annex use curl, but only when  an‐
1569              nex.security.allowed-ip-addresses  is  configured  in a specific
1570              way. See its documentation.
1571
1572       annex.youtube-dl-options
1573              Options to pass to youtube-dl when using it to find the  url  to
1574              download for a video.
1575
1576              Some  options may break git-annex's integration with youtube-dl.
1577              For example, the --output option could cause it to  store  files
1578              somewhere  git-annex  won't  find them. Avoid setting here or in
1579              the youtube-dl config file any options that cause youtube-dl  to
1580              download more than one file, or to store the file anywhere other
1581              than the current working directory.
1582
1583       annex.aria-torrent-options
1584              Options to pass to aria2c when using it to download a torrent.
1585
1586       annex.http-headers
1587              HTTP headers to send when downloading  from  the  web.  Multiple
1588              lines of this option can be set, one per header.
1589
1590       annex.http-headers-command
1591              If  set,  the command is run and each line of its output is used
1592              as a HTTP header. This overrides annex.http-headers.
1593
1594       annex.security.allowed-url-schemes
1595              List of URL schemes that git-annex is allowed to  download  con‐
1596              tent from.  The default is "http https ftp".
1597
1598              Think  very  carefully  before changing this; there are security
1599              implications. For example, if it's changed to allow "file" URLs,
1600              then  anyone who can get a commit into your git-annex repository
1601              could git-annex addurl a pointer to a private file located  out‐
1602              side that repository, possibly causing it to be copied into your
1603              repository and transferred on to  other  remotes,  exposing  its
1604              content.
1605
1606              Some  special  remotes  support  their  own  domain-specific URL
1607              schemes; those are not affected by this configuration setting.
1608
1609       annex.security.allowed-ip-addresses
1610              By default, git-annex only makes connections to  public  IP  ad‐
1611              dresses;  it will refuse to use HTTP and other servers on local‐
1612              host or on a private network.
1613
1614              This setting can override that behavior, allowing access to par‐
1615              ticular IP addresses that would normally be blocked. For example
1616              "127.0.0.1 ::1" allows access to localhost (both IPV4 and IPV6).
1617              To allow access to all IP addresses, use "all"
1618
1619              Think  very  carefully  before changing this; there are security
1620              implications. Anyone who can get a commit  into  your  git-annex
1621              repository  could  git  annex addurl an url on a private server,
1622              possibly causing it to be downloaded into  your  repository  and
1623              transferred to other remotes, exposing its content.
1624
1625              Note  that,  since  the interfaces of curl and youtube-dl do not
1626              allow these IP address restrictions to  be  enforced,  curl  and
1627              youtube-dl   will   never   be  used  unless  annex.security.al‐
1628              lowed-ip-addresses=all.
1629
1630              To allow accessing local or private IP addresses  on  only  spe‐
1631              cific   ports,   use  the  syntax  "[addr]:port".  For  example,
1632              "[127.0.0.1]:80 [127.0.0.1]:443 [::1]:80 [::1]:443"  allows  lo‐
1633              calhost on the http ports only.
1634
1635       annex.security.allowed-http-addresses
1636              Old  name for annex.security.allowed-ip-addresses.  If set, this
1637              is treated  the  same  as  having  annex.security.allowed-ip-ad‐
1638              dresses set.
1639
1640       annex.security.allow-unverified-downloads
1641              For security reasons, git-annex refuses to download content from
1642              most special remotes when it cannot check a hash to verify  that
1643              the  correct  content  was downloaded. This particularly impacts
1644              downloading the content of URL or WORM keys, which lack hashes.
1645
1646              The best way to avoid problems due to this is to  migrate  files
1647              away  from such keys, before their content reaches a special re‐
1648              mote.  See git-annex-migrate(1).
1649
1650              When the content is only available from a  special  remote,  you
1651              can  use  this  configuration to force git-annex to download it.
1652              But you do so at your own risk, and it's very important you read
1653              and understand the information below first!
1654
1655              Downloading unverified content from encrypted special remotes is
1656              prevented, because the special remote could send some other  en‐
1657              crypted  content  than what you expect, causing git-annex to de‐
1658              crypt data that you never checked into  git-annex,  and  risking
1659              exposing  the  decrypted  data  to any non-encrypted remotes you
1660              send content to.
1661
1662              Downloading unverified  content  from  (non-encrypted)  external
1663              special  remotes  is  prevented,  because they could follow http
1664              redirects to web servers on localhost or on a  private  network,
1665              or in some cases to a file:/// url.
1666
1667              If  you  decide to bypass this security check, the best thing to
1668              do is to only set it temporarily while running the command  that
1669              gets  the  file.   The value to set the config to is "ACKTHPPT".
1670              For example:
1671
1672               git -c annex.security.allow-unverified-downloads=ACKTHPPT annex
1673              get myfile
1674
1675              It would be a good idea to check that it downloaded the file you
1676              expected, too.
1677
1678       remote.<name>.annex-security-allow-unverified-downloads
1679              Per-remote   configuration    of    annex.security.allow-unveri‐
1680              fied-downloads.
1681

CONFIGURATION OF ASSISTANT

1683       annex.delayadd
1684
1685              Makes  the  watch and assistant commands delay for the specified
1686              number of seconds before adding a newly created file to the  an‐
1687              nex.  Normally this is not needed, because they already wait for
1688              all writers of the file to close it.
1689
1690       annex.expireunused
1691              Controls what the assistant does about unused file contents that
1692              are stored in the repository.
1693
1694              The  default is false, which causes all old and unused file con‐
1695              tents to be retained, unless the assistant is able to move  them
1696              to some other repository (such as a backup repository).
1697
1698              Can  be set to a time specification, like "7d" or "1m", and then
1699              file contents that have been known to be unused for a week or  a
1700              month will be deleted.
1701
1702       annex.fscknudge
1703              When  set  to false, prevents the webapp from reminding you when
1704              using repositories that lack consistency checks.
1705
1706       annex.autoupgrade
1707              When set to ask (the default), the webapp  will  check  for  new
1708              versions  and  prompt if they should be upgraded to. When set to
1709              true, automatically upgrades without  prompting  (on  some  sup‐
1710              ported  platforms).  When  set  to  false,  disables any upgrade
1711              checking.
1712
1713              Note that upgrade checking is only done when  git-annex  is  in‐
1714              stalled  from  one of the prebuilt images from its website. This
1715              does not bypass e.g., a Linux distribution's  own  upgrade  han‐
1716              dling code.
1717
1718              This  setting also controls whether to restart the git-annex as‐
1719              sistant when the git-annex binary is detected to  have  changed.
1720              That is useful no matter how you installed git-annex.
1721
1722       annex.autocommit
1723              Set  to  false  to prevent the git-annex assistant and git-annex
1724              sync from automatically  committing  changes  to  files  in  the
1725              repository.
1726
1727              To  configure the behavior in all clones of the repository, this
1728              can be set in git-annex-config(1).
1729
1730       annex.startupscan
1731              Set to false to prevent the git-annex  assistant  from  scanning
1732              the  repository  for new and changed files on startup. This will
1733              prevent it from noticing changes that were made while it was not
1734              running,  but  can  be  a  useful  performance tweak for a large
1735              repository.
1736
1737       annex.listen
1738              Configures which address the webapp listens on. The  default  is
1739              localhost.   Can be either an IP address, or a hostname that re‐
1740              solves to the desired address.
1741

CONFIGURATION VIA .gitattributes

1743       The key-value backend used when adding a new file to the annex  can  be
1744       configured  on  a  per-file-type basis via .gitattributes files. In the
1745       file, the annex.backend attribute can be set to the name of the backend
1746       to  use.  For  example,  this here's how to use the WORM backend by de‐
1747       fault, but the SHA256E backend for ogg files:
1748
1749        * annex.backend=WORM
1750        *.ogg annex.backend=SHA256E
1751
1752       There is a annex.largefiles attribute, which is used to configure which
1753       files  are large enough to be added to the annex. Since attributes can‐
1754       not contain spaces, it  is  difficult  to  use  for  more  complex  an‐
1755       nex.largefiles  settings.  Setting  annex.largefiles  in git-annex-con‐
1756       fig(1) is an easier way to configure it across all clones of the repos‐
1757       itory.  See git-annex-matching-expression(1) for details on the syntax.
1758
1759       The  numcopies  and  mincopies  settings  can  also  be configured on a
1760       per-file-type basis via the  annex.numcopies  and  annex.mincopies  at‐
1761       tributes  in  .gitattributes files. This overrides other settings.  For
1762       example, this makes two copies be needed for wav files and 3 copies for
1763       flac files:
1764
1765        *.wav annex.numcopies=2
1766        *.flac annex.numcopies=3
1767
1768       Note that setting numcopies or mincopies to 0 is very unsafe.
1769
1770       These  settings  are  honored by git-annex whenever it's operating on a
1771       matching file. However, when using --all, --unused, or --key to specify
1772       keys  to  operate  on, git-annex is operating on keys and not files, so
1773       will not honor the settings from .gitattributes. For this  reason,  the
1774       git annex numcopies and git annex mincopies commands are useful to con‐
1775       figure a global default.
1776
1777       Also note that when using views, only the toplevel .gitattributes  file
1778       is  preserved  in the view, so other settings in other files won't have
1779       any effect.
1780

EXIT STATUS

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

ENVIRONMENT

1789       These environment variables are used by git-annex when set:
1790
1791       GIT_WORK_TREE, GIT_DIR
1792              Handled the same as they are by git, see git(1)
1793
1794       GIT_SSH, GIT_SSH_COMMAND
1795              Handled similarly to the same as described in git(1).   The  one
1796              difference  is  that git-annex will sometimes pass an additional
1797              "-n" parameter to these, as the first parameter, to prevent  ssh
1798              from  reading  from stdin. Since that can break existing uses of
1799              these environment variables that don't expect the extra  parame‐
1800              ter,  you  will need to set GIT_ANNEX_USE_GIT_SSH=1 to make git-
1801              annex support these.
1802
1803              Note that setting either of these environment variables prevents
1804              git-annex  from  automatically  enabling  ssh connection caching
1805              (see annex.sshcaching), so it will  slow  down  some  operations
1806              with  remotes  over ssh. It's up to you to enable ssh connection
1807              caching if you need it; see ssh's documentation.
1808
1809              Also,  annex.ssh-options   and   remote.<name>.annex-ssh-options
1810              won't have any effect when these envionment variables are set.
1811
1812              Usually  it's  better  to  configure any desired options through
1813              your ~/.ssh/config file, or by setting annex.ssh-options.
1814
1815       GIT_ANNEX_VECTOR_CLOCK
1816              Normally git-annex timestamps lines in the log  files  committed
1817              to  the git-annex branch. Setting this environment variable to a
1818              number will make git-annex use that rather than the current num‐
1819              ber  of  seconds since the UNIX epoch. Note that decimal seconds
1820              are supported.
1821
1822              This is only provided for advanced users who either have a  bet‐
1823              ter way to tell which commit is current than the local clock, or
1824              who need to avoid embedding timestamps for policy reasons.  Mis‐
1825              use   of  this  environment  variable  can  confuse  git-annex's
1826              book-keeping, sometimes in ways that git annex fsck is unable to
1827              repair.
1828
1829       Some special remotes use additional environment variables
1830              for  authentication  etc.  For  example,  AWS_ACCESS_KEY_ID  and
1831              GIT_ANNEX_P2P_AUTHTOKEN. See special remote documentation.
1832

FILES

1834       These files are used by git-annex:
1835
1836       .git/annex/objects/ in your git repository contains  the  annexed  file
1837       contents that are currently available. Annexed files in your git repos‐
1838       itory symlink to that content.
1839
1840       .git/annex/ in your git repository contains other run-time  information
1841       used by git-annex.
1842
1843       ~/.config/git-annex/autostart  is  a  list of git repositories to start
1844       the git-annex assistant in.
1845
1846       .git/hooks/pre-commit-annex in your git repository will be run whenever
1847       a  commit  is  made to the HEAD branch, either by git commit, git-annex
1848       sync, or the git-annex assistant.
1849
1850       .git/hooks/post-update-annex in your git repository will be  run  when‐
1851       ever  the  git-annex  branch is updated. You can make this hook run git
1852       update-server-info when publishing a git-annex repository by http.
1853

SEE ALSO

1855       More  git-annex  documentation  is   available   on   its   web   site,
1856       <https://git-annex.branchable.com/>
1857
1858       If  git-annex  is installed from a package, a copy of its documentation
1859       should be included, in, for example, /usr/share/doc/git-annex/.
1860

AUTHOR

1862       Joey Hess <id@joeyh.name>
1863
1864       <https://git-annex.branchable.com/>
1865
1866                                                                  git-annex(1)
Impressum