1git-annex(1) General Commands Manual git-annex(1)
2
3
4
6 git-annex - manage files with git, without checking their contents in
7
9 git annex command [params ...]
10
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
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
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 Move and add files from outside git working copy into the annex.
136
137 See git-annex-import(1) for details.
138
139 importfeed [url ...]
140 Imports the contents of podcast feeds into the annex.
141
142 See git-annex-importfeed(1) for details.
143
144 export treeish --to remote
145 Export content to a remote.
146
147 See git-annex-export(1) for details.
148
149 undo [filename|directory] ...
150 Undo last change to a file or directory.
151
152 See git-annex-undo(1) for details.
153
154 multicast
155 Multicast file distribution.
156
157 See git-annex-multicast(1) for details.
158
159 watch Watch for changes and autocommit.
160
161 See git-annex-watch(1) for details.
162
163 assistant
164 Automatically sync folders between devices.
165
166 See git-annex-assistant(1) for details.
167
168 webapp Opens a web app, that allows easy setup of a git-annex reposi‐
169 tory, and control of the git-annex assistant. If the assistant
170 is not already running, it will be started.
171
172 See git-annex-webapp(1) for details.
173
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 enable-tor
200 Sets up tor hidden service.
201
202 See git-annex-enable-tor(1) for details.
203
204 numcopies [N]
205 Configure desired number of copies.
206
207 See git-annex-numcopies(1) for details.
208
209 trust [repository ...]
210 Records that a repository is trusted to not unexpectedly lose
211 content. Use with care.
212
213 See git-annex-trust(1) for details.
214
215 untrust [repository ...]
216 Records that a repository is not trusted and could lose content
217 at any time.
218
219 See git-annex-untrust(1) for details.
220
221 semitrust [repository ...]
222 Returns a repository to the default semi trusted state.
223
224 See git-annex-semitrust(1) for details.
225
226 group repository groupname
227 Add a repository to a group.
228
229 See git-annex-group(1) for details.
230
231 ungroup repository groupname
232 Removes a repository from a group.
233
234 See git-annex-ungroup(1) for details.
235
236 wanted repository [expression]
237 Get or set preferred content expression.
238
239 See git-annex-wanted(1) for details.
240
241 groupwanted groupname [expression]
242 Get or set groupwanted expression.
243
244 See git-annex-groupwanted(1) for details.
245
246 required repository [expression]
247 Get or set required content expression.
248
249 See git-annex-required(1) for details.
250
251 schedule repository [expression]
252 Get or set scheduled jobs.
253
254 See git-annex-schedule(1) for details.
255
256 config Get and set other configuration stored in git-annex branch.
257
258 See git-annex-config(1) for details.
259
260 vicfg Opens EDITOR on a temp file containing most of the above config‐
261 uration settings, as well as a few others, and when it exits,
262 stores any changes made back to the git-annex branch.
263
264 See git-annex-vicfg(1) for details.
265
266 direct Switches a repository to use direct mode, where rather than sym‐
267 links to files, the files are directly present in the reposi‐
268 tory.
269
270 See git-annex-direct(1) for details.
271
272 indirect
273 Switches a repository back from direct mode to the default,
274 indirect mode.
275
276 See git-annex-indirect(1) for details.
277
278 adjust Switches a repository to use an adjusted branch, which can auto‐
279 matically unlock all files, etc.
280
281 See git-annex-adjust(1) for details.
282
284 fsck [path ...]
285
286 Checks the annex consistency, and warns about or fixes any prob‐
287 lems found. This is a good complement to git fsck.
288
289 See git-annex-fsck(1) for details.
290
291 expire [repository:]time ...
292 Expires repositories that have not recently performed an activ‐
293 ity (such as a fsck).
294
295 See git-annex-expire(1) for details.
296
297 unused Checks the annex for data that does not correspond to any files
298 present in any tag or branch, and prints a numbered list of the
299 data.
300
301 See git-annex-unused(1) for details.
302
303 dropunused [number|range ...]
304 Drops the data corresponding to the numbers, as listed by the
305 last git annex unused
306
307 See git-annex-dropunused(1) for details.
308
309 addunused [number|range ...]
310 Adds back files for the content corresponding to the numbers or
311 ranges, as listed by the last git annex unused.
312
313 See git-annex-addunused(1) for details.
314
315 fix [path ...]
316 Fixes up symlinks that have become broken to again point to
317 annexed content.
318
319 See git-annex-fix(1) for details.
320
321 merge Automatically merge changes from remotes.
322
323 See git-annex-merge(1) for details.
324
325 upgrade
326 Upgrades the repository to current layout.
327
328 See git-annex-upgrade(1) for details.
329
330 dead [repository ...] [--key key]
331 Indicates that a repository or a single key has been irretriev‐
332 ably lost.
333
334 See git-annex-dead(1) for details.
335
336 forget Causes the git-annex branch to be rewritten, throwing away his‐
337 torical data about past locations of files.
338
339 See git-annex-forget(1) for details.
340
341 repair This can repair many of the problems with git repositories that
342 git fsck detects, but does not itself fix. It's useful if a
343 repository has become badly damaged. One way this can happen is
344 if a repository used by git-annex is on a removable drive that
345 gets unplugged at the wrong time.
346
347 See git-annex-repair(1) for details.
348
349 p2p Configure peer-2-Peer links between repositories.
350
351 See git-annex-p2p(1) for details.
352
354 find [path ...]
355
356 Outputs a list of annexed files in the specified path. With no
357 path, finds files in the current directory and its subdirecto‐
358 ries.
359
360 See git-annex-find(1) for details.
361
362 whereis [path ...]
363 Displays information about where the contents of files are
364 located.
365
366 See git-annex-whereis(1) for details.
367
368 list [path ...]
369 Displays a table of remotes that contain the contents of the
370 specified files. This is similar to whereis but a more compact
371 display.
372
373 See git-annex-list(1) for details.
374
375 log [path ...]
376 Displays the location log for the specified file or files, show‐
377 ing each repository they were added to ("+") and removed from
378 ("-").
379
380 See git-annex-log(1) for details.
381
382 info [directory|file|remote|uuid ...]
383 Displays statistics and other information for the specified
384 item, which can be a directory, or a file, or a remote, or the
385 uuid of a repository.
386
387 When no item is specified, displays statistics and information
388 for the repository as a whole.
389
390 See git-annex-info(1) for details.
391
392 version
393 Shows the version of git-annex, as well as repository version
394 information.
395
396 See git-annex-version(1) for details.
397
398 map Generate map of repositories.
399
400 See git-annex-map(1) for details.
401
402 inprogress
403 Access files while they're being downloaded.
404
405 See git-annex-inprogress(1) for details.
406
408 metadata [path ...]
409
410 The content of an annexed file can have any number of metadata
411 fields attached to it to describe it. Each metadata field can in
412 turn have any number of values.
413
414 This command can be used to set metadata, or show the currently
415 set metadata.
416
417 See git-annex-metadata(1) for details.
418
419 view [tag ...] [field=value ...] [field=glob ...] [!tag ...]
420 [field!=value ...]
421 Uses metadata to build a view branch of the files in the current
422 branch, and checks out the view branch. Only files in the cur‐
423 rent branch whose metadata matches all the specified field val‐
424 ues and tags will be shown in the view.
425
426 See git-annex-view(1) for details.
427
428 vpop [N]
429 Switches from the currently active view back to the previous
430 view. Or, from the first view back to original branch.
431
432 See git-annex-vpop(1) for details.
433
434 vfilter [tag ...] [field=value ...] [!tag ...] [field!=value ...]
435 Filters the current view to only the files that have the speci‐
436 fied field values and tags.
437
438 See git-annex-vfilter(1) for details.
439
440 vadd [field=glob ...] [field=value ...] [tag ...]
441 Changes the current view, adding an additional level of directo‐
442 ries to categorize the files.
443
444 See git-annex-vfilter(1) for details.
445
446 vcycle When a view involves nested subdirectories, this cycles the
447 order.
448
449 See git-annex-vcycle(1) for details.
450
452 migrate [path ...]
453
454 Changes the specified annexed files to use a different key-value
455 backend.
456
457 See git-annex-migrate(1) for details.
458
459 reinject src dest
460 Moves the src file into the annex as the content of the dest
461 file. This can be useful if you have obtained the content of a
462 file from elsewhere and want to put it in the local annex.
463
464 See git-annex-reinject(1) for details.
465
466 unannex [path ...]
467 Use this to undo an accidental git annex add command. It puts
468 the file back how it was before the add.
469
470 See git-annex-unannex(1) for details.
471
472 uninit De-initialize git-annex and clean out repository.
473
474 See git-annex-uninit(1) for details.
475
476 reinit uuid|description
477 Initialize repository, reusing old UUID.
478
479 See git-annex-reinit(1) for details.
480
482 pre-commit [path ...]
483
484 This is meant to be called from git's pre-commit hook. git annex
485 init automatically creates a pre-commit hook using this.
486
487 See git-annex-pre-commit(1) for details.
488
489 post-receive
490 This is meant to be called from git's post-receive hook. git
491 annex init automatically creates a post-receive hook using this.
492
493 See git-annex-post-receive(1) for details.
494
495 lookupkey [file ...]
496 Looks up key used for file.
497
498 See git-annex-lookupkey(1) for details.
499
500 calckey [file ...]
501 Calculates the key that would be used to refer to a file.
502
503 See git-annex-calckey(1) for details.
504
505 contentlocation [key ..]
506 Looks up location of annexed content for a key.
507
508 See git-annex-contentlocation(1) for details.
509
510 examinekey [key ...]
511 Print information that can be determined purely by looking at
512 the key.
513
514 See git-annex-examinekey(1) for details.
515
516 matchexpression
517 Checks if a preferred content expression matches provided data.
518
519 See git-annex-matchexpression(1) for details.
520
521 fromkey [key file]
522 Manually set up a file in the git repository to link to a speci‐
523 fied key.
524
525 See git-annex-fromkey(1) for details.
526
527 registerurl [key url]
528 Registers an url for a key.
529
530 See git-annex-registerurl(1) for details.
531
532 setkey key file
533 Moves a file into the annex as the content of a key.
534
535 See git-annex-setkey(1) for details.
536
537 dropkey [key ...]
538 Drops annexed content for specified keys.
539
540 See git-annex-dropkey(1) for details.
541
542 transferkey key [--from=remote|--to=remote]
543 Transfers a key from or to a remote.
544
545 See git-annex-transferkey(1) for details.
546
547 transferkeys
548 Used internally by the assistant.
549
550 See git-annex-transferkey(1) for details.
551
552 setpresentkey key uuid [1|0]
553 This plumbing-level command changes git-annex's records about
554 whether the specified key's content is present in a remote with
555 the specified uuid.
556
557 See git-annex-setpresentkey(1) for details.
558
559 readpresentkey key uuid
560 Read records of where key is present.
561
562 See git-annex-readpresentkey(1) for details.
563
564 checkpresentkey key remote
565 Check if key is present in remote.
566
567 See git-annex-checkpresentkey(1) for details.
568
569 rekey [file key ...]
570 Change keys used for files.
571
572 See git-annex-rekey(1) for details.
573
574 findref [ref]
575 Lists files in a git ref.
576
577 See git-annex-findref(1) for details.
578
579 proxy -- git cmd [options]
580 Only useful in a direct mode repository, this runs the specified
581 git command with a temporary work tree, and updates the working
582 tree to reflect any changes staged or committed by the git com‐
583 mand.
584
585 See git-annex-proxy(1) for details.
586
587 resolvemerge
588 Resolves a conflicted merge, by adding both conflicting versions
589 of the file to the tree, using variants of their filename. This
590 is done automatically when using git annex sync or git annex
591 merge.
592
593 See git-annex-resolvemerge(1) for details.
594
595 diffdriver
596 This can be used to make git diff use an external diff driver
597 with annexed files.
598
599 See git-annex-diffdriver(1) for details.
600
601 smudge This command lets git-annex be used as a git filter driver,
602 allowing annexed files in the git repository to be unlocked at
603 all times, instead of being symlinks.
604
605 See git-annex-smudge(1) for details.
606
607 remotedaemon
608 Detects when network remotes have received git pushes and
609 fetches from them.
610
611 See git-annex-remotedaemon(1) for details.
612
614 test
615
616 This runs git-annex's built-in test suite.
617
618 See git-annex-test(1) for details.
619
620 testremote remote
621 This tests a remote by generating some random objects and send‐
622 ing them to the remote, then redownloading them, removing them
623 from the remote, etc.
624
625 It's safe to run in an existing repository (the repository con‐
626 tents are not altered), although it may perform expensive data
627 transfers.
628
629 See git-annex-testremote(1) for details.
630
631 fuzztest
632 Generates random changes to files in the current repository, for
633 use in testing the assistant.
634
635 See git-annex-fuzztest(1) for details.
636
637 benchmark
638 This runs git-annex's built-in benchmarks, if it was built with
639 benchmarking support.
640
642 These common options are accepted by all git-annex commands, and may
643 not be explicitly listed on their individual man pages. (Many commands
644 also accept the git-annex-matching-options(1).)
645
646 --force
647 Force unsafe actions, such as dropping a file's content when no
648 other source of it can be verified to still exist, or adding
649 ignored files. Use with care.
650
651 --fast Enable less expensive, but also less thorough versions of some
652 commands. What is avoided depends on the command.
653
654 --quiet
655 Avoid the default verbose display of what is done; only show
656 errors.
657
658 --verbose
659 Enable verbose display.
660
661 --debug
662 Show debug messages.
663
664 --no-debug
665 Disable debug messages.
666
667 --numcopies=n
668 Overrides the numcopies setting, forcing git-annex to ensure the
669 specified number of copies exist.
670
671 Note that setting numcopies to 0 is very unsafe.
672
673 --time-limit=time
674 Limits how long a git-annex command runs. The time can be some‐
675 thing like "5h", or "30m" or even "45s" or "10d".
676
677 Note that git-annex may continue running a little past the spec‐
678 ified time limit, in order to finish processing a file.
679
680 Also, note that if the time limit prevents git-annex from doing
681 all it was asked to, it will exit with a special code, 101.
682
683 --trust=repository
684
685 --semitrust=repository
686
687 --untrust=repository
688 Overrides trust settings for a repository. May be specified more
689 than once.
690
691 The repository should be specified using the name of a config‐
692 ured remote, or the UUID or description of a repository.
693
694 --trust-glacier-inventory
695 Amazon Glacier inventories take hours to retrieve, and may not
696 represent the current state of a repository. So git-annex does
697 not trust that files that the inventory claims are in Glacier
698 are really there. This switch can be used to allow it to trust
699 the inventory.
700
701 Be careful using this, especially if you or someone else might
702 have recently removed a file from Glacier. If you try to drop
703 the only other copy of the file, and this switch is enabled, you
704 could lose data!
705
706 --backend=name
707 Specifies which key-value backend to use. This can be used when
708 adding a file to the annex, or migrating a file. Once files are
709 in the annex, their backend is known and this option is not nec‐
710 essary.
711
712 --user-agent=value
713 Overrides the User-Agent to use when downloading files from the
714 web.
715
716 --notify-finish
717 Caused a desktop notification to be displayed after each suc‐
718 cessful file download and upload.
719
720 (Only supported on some platforms, e.g. Linux with dbus. A no-op
721 when not supported.)
722
723 --notify-start
724 Caused a desktop notification to be displayed when a file upload
725 or download has started, or when a file is dropped.
726
727 -c name=value
728 Overrides git configuration settings. May be specified multiple
729 times.
730
732 Like other git commands, git-annex is configured via .git/config. Here
733 are all the supported configuration settings.
734
735 annex.uuid
736 A unique UUID for this repository (automatically set).
737
738 annex.backend
739 Name of the default key-value backend to use when adding new
740 files to the repository.
741
742 This is overridden by annex annex.backend configuration in the
743 .gitattributes files, and by the --backend option.
744
745 (This used to be named annex.backends, and that will still be
746 used if set.)
747
748 annex.securehashesonly
749 Set to true to indicate that the repository should only use
750 cryptographically secure hashes (SHA2, SHA3) and not insecure
751 hashes (MD5, SHA1) for content.
752
753 When this is set, the contents of files using cryptographically inse‐
754 cure hashes will not be allowed to be added to the repository.
755
756 Also, git-annex fsck will complain about any files present in the
757 repository that use insecure hashes.
758
759 To configure the behavior in new clones of the repository, this can be
760 set in git-annex-config.
761
762 annex.maxextensionlength
763 Maximum length of what is considered a filename extension when
764 adding a file to a backend that preserves filename extensions.
765 The default length is 4, which allows extensions like "jpeg".
766 The dot before the extension is not counted part of its length.
767
768 annex.diskreserve
769 Amount of disk space to reserve. Disk space is checked when
770 transferring content to avoid running out, and additional free
771 space can be reserved via this option, to make space for more
772 important content (such as git commit logs). Can be specified
773 with any commonly used units, for example, "0.5 gb", "500M", or
774 "100 KiloBytes"
775
776 The default reserve is 1 megabyte.
777
778 annex.largefiles
779 Used to configure which files are large enough to be added to
780 the annex. Default: All files.
781
782 Overrides any annex.largefiles attributes in .gitattributes
783 files.
784
785 See <https://git-annex.branchable.com/tips/largefiles> for
786 details.
787
788 annex.addsmallfiles
789 Controls whether small files (not matching annex.largefiles)
790 should be checked into git by git annex add. Defaults to true;
791 set to false to instead make small files be skipped.
792
793 annex.addunlocked
794 Set to true to make commands like git-annex add that add files
795 to the repository add them in unlocked form. The default is to
796 add files in locked form. This only has effect in version 6
797 repositories.
798
799 When a repository has core.symlinks set to false, it implicitly
800 sets annex.addunlocked to true.
801
802 annex.numcopies
803 This is a deprecated setting. You should instead use the git
804 annex numcopies command to configure how many copies of files
805 are kept across all repositories, or the annex.numcopies .gitat‐
806 tributes setting.
807
808 This config setting is only looked at when git annex numcopies
809 has never been configured, and when there's no annex.numcopies
810 setting in the .gitattributes file.
811
812 Note that setting numcopies to 0 is very unsafe.
813
814 annex.genmetadata
815 Set this to true to make git-annex automatically generate some
816 metadata when adding files to the repository.
817
818 In particular, it stores year, month, and day metadata, from the
819 file's modification date.
820
821 When importfeed is used, it stores additional metadata from the
822 feed, such as the author, title, etc.
823
824 annex.used-refspec
825 This controls which refs git-annex unused considers to be used.
826 See REFSPEC FORMAT in git-annex-unused(1) for details.
827
828 annex.jobs
829 Configure the number of concurrent jobs to run. Default is 1.
830
831 Only git-annex commands that support the --jobs option will use
832 this.
833
834 annex.queuesize
835 git-annex builds a queue of git commands, in order to combine
836 similar commands for speed. By default the size of the queue is
837 limited to 10240 commands; this can be used to change the size.
838 If you have plenty of memory and are working with very large
839 numbers of files, increasing the queue size can speed it up.
840
841 annex.bloomcapacity
842 The git annex unused and git annex sync --content commands use a
843 bloom filter to determine what files are present in eg, the work
844 tree. The default bloom filter is sized to handle up to 500000
845 files. If your repository is larger than that, you should
846 increase this value. Larger values will make git-annex unused
847 and git annex sync --content consume more memory; run git annex
848 info for memory usage numbers.
849
850 annex.bloomaccuracy
851 Adjusts the accuracy of the bloom filter used by git annex
852 unused and git annex sync --content. The default accuracy is
853 10000000 -- 1 unused file out of 10000000 will be missed by git
854 annex unused. Increasing the accuracy will make git annex unused
855 consume more memory; run git annex info for memory usage num‐
856 bers.
857
858 annex.sshcaching
859 By default, git-annex caches ssh connections using ssh's Con‐
860 trolMaster and ControlPersist settings (if built using a new
861 enough ssh). To disable this, set to false.
862
863 annex.alwayscommit
864 By default, git-annex automatically commits data to the git-
865 annex branch after each command is run. If you have a series of
866 commands that you want to make a single commit, you can run the
867 commands with -c annex.alwayscommit=false. You can later commit
868 the data by running git annex merge (or by automatic merges) or
869 git annex sync.
870
871 You should beware running git gc when using this configuration,
872 since it could garbage collect objects that are staged in git-
873 annex's index but not yet committed.
874
875 annex.commitmessage
876 When git-annex updates the git-annex branch, it usually makes up
877 its own commit message ("update"), since users rarely look at or
878 care about changes to that branch. If you do care, you can spec‐
879 ify this setting by running commands with -c annex.commitmes‐
880 sage=whatever
881
882 This works well in combination with annex.alwayscommit=false, to
883 gather up a set of changes and commit them with a message you
884 specify.
885
886 annex.merge-annex-branches
887 By default, git-annex branches that have been pulled from
888 remotes are automatically merged into the local git-annex
889 branch, so that git-annex has the most up-to-date possible
890 knowledge.
891
892 To avoid that merging, set this to "false". This can be useful
893 particularly when you don't have write permission to the reposi‐
894 tory.
895
896 annex.hardlink
897 Set this to true to make file contents be hard linked between
898 the repository and its remotes when possible, instead of a more
899 expensive copy.
900
901 Use with caution -- This can invalidate numcopies counting,
902 since with hard links, fewer copies of a file can exist. So, it
903 is a good idea to mark a repository using this setting as
904 untrusted.
905
906 When a repository is set up using git clone --shared, git-annex
907 init will automatically set annex.hardlink and mark the reposi‐
908 tory as untrusted.
909
910 annex.thin
911 Set this to true to make unlocked files be a hard link to their
912 content in the annex, rather than a second copy. (Only when sup‐
913 ported by the file system, and only in repository version 6.)
914 This can save considerable disk space, but when a modification
915 is made to a file, you will lose the local (and possibly only)
916 copy of the old version. So, enable with care.
917
918 After setting (or unsetting) this, you should run git annex fix
919 to fix up the annexed files in the work tree to be hard links
920 (or copies).
921
922 Note that annex.thin is not honored when git updates an annexed
923 file in the working tree. So when git checkout or git merge
924 updates the working tree, a second copy of annexed files will
925 result. You can run git-annex fix to fix up the hard links after
926 running such git commands.
927
928 annex.delayadd
929 Makes the watch and assistant commands delay for the specified
930 number of seconds before adding a newly created file to the
931 annex. Normally this is not needed, because they already wait
932 for all writers of the file to close it. On Mac OSX, when not
933 using direct mode this defaults to 1 second, to work around a
934 bad interaction with software there.
935
936 annex.expireunused
937 Controls what the assistant does about unused file contents that
938 are stored in the repository.
939
940 The default is false, which causes all old and unused file con‐
941 tents to be retained, unless the assistant is able to move them
942 to some other repository (such as a backup repository).
943
944 Can be set to a time specification, like "7d" or "1m", and then
945 file contents that have been known to be unused for a week or a
946 month will be deleted.
947
948 annex.fscknudge
949 When set to false, prevents the webapp from reminding you when
950 using repositories that lack consistency checks.
951
952 annex.autoupgrade
953 When set to ask (the default), the webapp will check for new
954 versions and prompt if they should be upgraded to. When set to
955 true, automatically upgrades without prompting (on some sup‐
956 ported platforms). When set to false, disables any upgrade
957 checking.
958
959 Note that upgrade checking is only done when git-annex is
960 installed from one of the prebuilt images from its website. This
961 does not bypass e.g., a Linux distribution's own upgrade han‐
962 dling code.
963
964 This setting also controls whether to restart the git-annex
965 assistant when the git-annex binary is detected to have changed.
966 That is useful no matter how you installed git-annex.
967
968 annex.autocommit
969 Set to false to prevent the git-annex assistant and git-annex
970 sync from automatically committing changes to files in the
971 repository.
972
973 To configure the behavior in all clones of the repository, this
974 can be set in git-annex-config.
975
976 annex.resolvemerge
977 Set to false to prevent merge conflicts in the checked out
978 branch being automatically resolved by the git-annex assitant,
979 git-annex sync, git-annex merge, and the git-annex post-receive
980 hook.
981
982 To configure the behavior in all clones of the repository, this
983 can be set in git-annex-config.
984
985 annex.synccontent
986 Set to true to make git-annex sync default to syncing content.
987
988 To configure the behavior in all clones of the repository, this
989 can be set in git-annex-config.
990
991 annex.startupscan
992 Set to false to prevent the git-annex assistant from scanning
993 the repository for new and changed files on startup. This will
994 prevent it from noticing changes that were made while it was not
995 running, but can be a useful performance tweak for a large
996 repository.
997
998 annex.listen
999 Configures which address the webapp listens on. The default is
1000 localhost. Can be either an IP address, or a hostname that
1001 resolves to the desired address.
1002
1003 annex.debug
1004 Set to true to enable debug logging by default.
1005
1006 annex.version
1007 Automatically maintained, and used to automate upgrades between
1008 versions.
1009
1010 annex.direct
1011 Set to true when the repository is in direct mode. Should not be
1012 set manually; use the "git annex direct" and "git annex indi‐
1013 rect" commands instead.
1014
1015 annex.crippledfilesystem
1016 Set to true if the repository is on a crippled filesystem, such
1017 as FAT, which does not support symbolic links, or hard links, or
1018 unix permissions. This is automatically probed by "git annex
1019 init".
1020
1021 annex.pidlock
1022 Normally, git-annex uses fine-grained lock files to allow multi‐
1023 ple processes to run concurrently without getting in each oth‐
1024 ers' way. That works great, unless you are using git-annex on a
1025 filesystem that does not support POSIX fcntl locks. This is
1026 sometimes the case when using NFS or Lustre filesystems.
1027
1028 To support such situations, you can set annex.pidlock to true,
1029 and it will fall back to a single top-level pid file lock.
1030
1031 Although, often, you'd really be better off fixing your net‐
1032 worked filesystem configuration to support POSIX locks.. And,
1033 some networked filesystems are so inconsistent that one node
1034 can't reliably tell when the other node is holding a pid lock.
1035 Caveat emptor.
1036
1037 annex.pidlocktimeout
1038 When using pid lock files, it's possible for a stale lock file
1039 to get left behind by previous run of git-annex that crashed or
1040 was interrupted. This is mostly avoided, but can occur espe‐
1041 cially when using a network file system.
1042
1043 git-annex will wait up to this many seconds for the pid lock
1044 file to go away, and will then abort if it cannot continue.
1045 Default: 300
1046
1047 remote.<name>.annex-cost
1048 When determining which repository to transfer annexed files from
1049 or to, ones with lower costs are preferred. The default cost is
1050 100 for local repositories, and 200 for remote repositories.
1051
1052 remote.<name>.annex-cost-command
1053 If set, the command is run, and the number it outputs is used as
1054 the cost. This allows varying the cost based on e.g., the cur‐
1055 rent network.
1056
1057 remote.<name>.annex-start-command
1058 A command to run when git-annex begins to use the remote. This
1059 can be used to, for example, mount the directory containing the
1060 remote.
1061
1062 The command may be run repeatedly when multiple git-annex pro‐
1063 cesses are running concurrently.
1064
1065 remote.<name>.annex-stop-command
1066 A command to run when git-annex is done using the remote.
1067
1068 The command will only be run once *all* running git-annex pro‐
1069 cesses are finished using the remote.
1070
1071 remote.<name>.annex-shell
1072 Specify an alternative git-annex-shell executable on the remote
1073 instead of looking for "git-annex-shell" on the PATH.
1074
1075 This is useful if the git-annex-shell program is outside the
1076 PATH or has a non-standard name.
1077
1078 remote.<name>.annex-ignore
1079 If set to true, prevents git-annex from storing file contents on
1080 this remote by default. (You can still request it be used by
1081 the --from and --to options.)
1082
1083 This is, for example, useful if the remote is located somewhere
1084 without git-annex-shell. (For example, if it's on GitHub). Or,
1085 it could be used if the network connection between two reposito‐
1086 ries is too slow to be used normally.
1087
1088 This does not prevent git-annex sync (or the git-annex assis‐
1089 tant) from syncing the git repository to the remote.
1090
1091 remote.<name>.annex-ignore-command
1092 If set, the command is run, and if it exits nonzero, that's the
1093 same as setting annex-ignore to true. This allows controlling
1094 behavior based on e.g., the current network.
1095
1096 remote.<name>.annex-sync
1097 If set to false, prevents git-annex sync (and the git-annex
1098 assistant) from syncing with this remote by default. However,
1099 git annex sync <name> can still be used to sync with the remote.
1100
1101 remote.<name>.annex-sync-command
1102 If set, the command is run, and if it exits nonzero, that's the
1103 same as setting annex-sync to false. This allows controlling
1104 behavior based on e.g., the current network.
1105
1106 remote.<name>.annex-pull
1107 If set to false, prevents git-annex sync (and the git-annex
1108 assistant etc) from ever pulling (or fetching) from the remote.
1109
1110 remote.<name>.annex-push
1111 If set to false, prevents git-annex sync (and the git-annex
1112 assistant etc) from ever pushing to the remote.
1113
1114 remote.<name>.annex-readonly
1115 If set to true, prevents git-annex from making changes to a
1116 remote. This both prevents git-annex sync from pushing changes,
1117 and prevents storing or removing files from read-only remote.
1118
1119 remote.<name>.annex-verify, annex.verify
1120 By default, git-annex will verify the checksums of objects down‐
1121 loaded from remotes. If you trust a remote and don't want the
1122 overhead of these checksums, you can set this to false.
1123
1124 Note that even when this is set to false, git-annex does verifi‐
1125 cation in some edge cases, where it's likely the case than an
1126 object was downloaded incorrectly, or when needed for security.
1127
1128 remote.<name>.annex-export-tracking
1129 When set to a branch name or other treeish, this makes what's
1130 exported to the special remote track changes to the branch. See
1131 git-annex-export(1). git-annex sync --content and the git-annex
1132 assistant update exports when changes have been committed to the
1133 tracking branch.
1134
1135 remote.<name>.annexUrl
1136 Can be used to specify a different url than the regular
1137 remote.<name>.url for git-annex to use when talking with the
1138 remote. Similar to the pushUrl used by git-push.
1139
1140 remote.<name>.annex-uuid
1141 git-annex caches UUIDs of remote repositories here.
1142
1143 remote.<name>.annex-retry, annex.retry
1144 Configure retries of failed transfers on a per-remote and gen‐
1145 eral basis, respectively. The value is the number of retries
1146 that can be made of the same transfer. (default 0)
1147
1148 remote.<name>.annex-retry-delay, annex.retry-delay
1149 Number of seconds to delay before the first retry of a transfer.
1150 When making multiple retries of the same transfer, the delay
1151 doubles after each retry. (default 1)
1152
1153 remote.<name>.annex-checkuuid
1154 This only affects remotes that have their url pointing to a
1155 directory on the same system. git-annex normally checks the uuid
1156 of such remotes each time it's run, which lets it transparently
1157 deal with different drives being mounted to the location at dif‐
1158 ferent times.
1159
1160 Setting annex-checkuuid to false will prevent it from checking
1161 the uuid at startup (although the uuid is still verified before
1162 making any changes to the remote repository). This may be useful
1163 to set to prevent unncessary spin-up or automounting of a drive.
1164
1165 remote.<name>.annex-trustlevel
1166 Configures a local trust level for the remote. This overrides
1167 the value configured by the trust and untrust commands. The
1168 value can be any of "trusted", "semitrusted" or "untrusted".
1169
1170 remote.<name>.annex-availability
1171 Can be used to tell git-annex whether a remote is LocallyAvail‐
1172 able or GloballyAvailable. Normally, git-annex determines this
1173 automatically.
1174
1175 remote.<name>.annex-speculate-present
1176 Set to "true" to make git-annex speculate that this remote may
1177 contain the content of any file, even though its normal location
1178 tracking does not indicate that it does. This will cause git-
1179 annex to try to get all file contents from the remote. Can be
1180 useful in setting up a caching remote.
1181
1182 remote.<name>.annex-bare
1183 Can be used to tell git-annex if a remote is a bare repository
1184 or not. Normally, git-annex determines this automatically.
1185
1186 remote.<name>.annex-ssh-options
1187 Options to use when using ssh to talk to this remote.
1188
1189 remote.<name>.annex-rsync-options
1190 Options to use when using rsync to or from this remote. For
1191 example, to force IPv6, and limit the bandwidth to 100Kbyte/s,
1192 set it to -6 --bwlimit 100
1193
1194 Note that git-annex-shell has a whitelist of allowed rsync
1195 options, and others will not be be passed to the remote rsync.
1196 So using some options may break the communication between the
1197 local and remote rsyncs.
1198
1199 remote.<name>.annex-rsync-upload-options
1200 Options to use when using rsync to upload a file to a remote.
1201
1202 These options are passed after other applicable rsync options,
1203 so can be used to override them. For example, to limit upload
1204 bandwidth to 10Kbyte/s, set --bwlimit 10.
1205
1206 remote.<name>.annex-rsync-download-options
1207 Options to use when using rsync to download a file from a
1208 remote.
1209
1210 These options are passed after other applicable rsync options,
1211 so can be used to override them.
1212
1213 remote.<name>.annex-rsync-transport
1214 The remote shell to use to connect to the rsync remote. Possible
1215 values are ssh (the default) and rsh, together with their argu‐
1216 ments, for instance ssh -p 2222 -c blowfish; Note that the
1217 remote hostname should not appear there, see rsync(1) for
1218 details. When the transport used is ssh, connections are auto‐
1219 matically cached unless annex.sshcaching is unset.
1220
1221 remote.<name>.annex-bup-split-options
1222 Options to pass to bup split when storing content in this
1223 remote. For example, to limit the bandwidth to 100Kbyte/s, set
1224 it to --bwlimit 100k (There is no corresponding option for bup
1225 join.)
1226
1227 remote.<name>.annex-gnupg-options
1228 Options to pass to GnuPG when it's encrypting data. For
1229 instance, to use the AES cipher with a 256 bits key and disable
1230 compression, set it to --cipher-algo AES256 --compress-algo
1231 none. (These options take precedence over the default GnuPG con‐
1232 figuration, which is otherwise used.)
1233
1234 remote.<name>.annex-gnupg-decrypt-options
1235 Options to pass to GnuPG when it's decrypting data. (These
1236 options take precedence over the default GnuPG configuration,
1237 which is otherwise used.)
1238
1239 annex.ssh-options, annex.rsync-options,
1240 annex.rsync-upload-options, annex.rsync-download-options,
1241 annex.bup-split-options, annex.gnupg-options,
1242 annex.gnupg-decrypt-options
1243
1244 Default options to use if a remote does not have more specific
1245 options as described above.
1246
1247 annex.web-options
1248 Options to pass to curl when git-annex uses it to download urls
1249 (rather than the default built-in url downloader).
1250
1251 For example, to force IPv4 only, set it to "-4". Or to make
1252 curl use your ~/.netrc file, set it to "--netrc".
1253
1254 Setting this option makes git-annex use curl, but only when
1255 annex.security.allowed-http-addresses is configured in a spe‐
1256 cific way. See its documentation.
1257
1258 annex.youtube-dl-options
1259 Options to pass to youtube-dl when using it to find the url to
1260 download for a video.
1261
1262 Some options may break git-annex's integration with youtube-dl.
1263 For example, the --output option could cause it to store files
1264 somewhere git-annex won't find them. Avoid setting here or in
1265 the youtube-dl config file any options that cause youtube-dl to
1266 download more than one file, or to store the file anywhere other
1267 than the current working directory.
1268
1269 annex.aria-torrent-options
1270 Options to pass to aria2c when using it to download a torrent.
1271
1272 annex.http-headers
1273 HTTP headers to send when downloading from the web. Multiple
1274 lines of this option can be set, one per header.
1275
1276 annex.http-headers-command
1277 If set, the command is run and each line of its output is used
1278 as a HTTP header. This overrides annex.http-headers.
1279
1280 annex.security.allowed-url-schemes
1281 List of URL schemes that git-annex is allowed to download con‐
1282 tent from. The default is "http https ftp".
1283
1284 Think very carefully before changing this; there are security
1285 implications. For example, if it's changed to allow "file" URLs,
1286 then anyone who can get a commit into your git-annex repository
1287 could git-annex addurl a pointer to a private file located out‐
1288 side that repository, possibly causing it to be copied into your
1289 repository and transferred on to other remotes, exposing its
1290 content.
1291
1292 Some special remotes support their own domain-specific URL
1293 schemes; those are not affected by this configuration setting.
1294
1295 annex.security.allowed-http-addresses
1296 By default, git-annex only makes HTTP connections to public IP
1297 addresses; it will refuse to use HTTP servers on localhost or on
1298 a private network.
1299
1300 This setting can override that behavior, allowing access to par‐
1301 ticular IP addresses. For example "127.0.0.1 ::1" allows access
1302 to localhost (both IPV4 and IPV6). To allow access to all IP
1303 addresses, use "all"
1304
1305 Think very carefully before changing this; there are security
1306 implications. Anyone who can get a commit into your git-annex
1307 repository could git annex addurl an url on a private http
1308 server, possibly causing it to be downloaded into your reposi‐
1309 tory and transferred to other remotes, exposing its content.
1310
1311 Note that, since the interfaces of curl and youtube-dl do not
1312 allow these IP address restrictions to be enforced, curl and
1313 youtube-dl will never be used unless annex.secu‐
1314 rity.allowed-http-addresses=all.
1315
1316 annex.security.allow-unverified-downloads
1317 For security reasons, git-annex refuses to download content from
1318 most special remotes when it cannot check a hash to verify that
1319 the correct content was downloaded. This particularly impacts
1320 downloading the content of URL or WORM keys, which lack hashes.
1321
1322 The best way to avoid problems due to this is to migrate files
1323 away from such keys, before their content reaches a special
1324 remote. See git-annex-migrate(1).
1325
1326 When the content is only available from a special remote, you
1327 can use this configuration to force git-annex to download it.
1328 But you do so at your own risk, and it's very important you read
1329 and understand the information below first!
1330
1331 Downloading unverified content from encrypted special remotes is
1332 prevented, because the special remote could send some other
1333 encrypted content than what you expect, causing git-annex to
1334 decrypt data that you never checked into git-annex, and risking
1335 exposing the decrypted data to any non-encrypted remotes you
1336 send content to.
1337
1338 Downloading unverified content from (non-encrypted) external
1339 special remotes is prevented, because they could follow http
1340 redirects to web servers on localhost or on a private network,
1341 or in some cases to a file:/// url.
1342
1343 If you decide to bypass this security check, the best thing to
1344 do is to only set it temporarily while running the command that
1345 gets the file. The value to set the config to is "ACKTHPPT".
1346 For example:
1347
1348 git -c annex.security.allow-unverified-downloads=ACKTHPPT annex
1349 get myfile
1350
1351 It would be a good idea to check that it downloaded the file you
1352 expected, too.
1353
1354 remote.name.annex-security-allow-unverified-downloads
1355 Per-remote configuration of annex.security.allow-unveri‐
1356 fied-downloads.
1357
1358 annex.secure-erase-command
1359 This can be set to a command that should be run whenever git-
1360 annex removes the content of a file from the repository.
1361
1362 In the command line, %file is replaced with the file that should
1363 be erased.
1364
1365 For example, to use the wipe command, set it to wipe -f %file.
1366
1367 remote.<name>.rsyncurl
1368 Used by rsync special remotes, this configures the location of
1369 the rsync repository to use. Normally this is automatically set
1370 up by git annex initremote, but you can change it if needed.
1371
1372 remote.<name>.buprepo
1373 Used by bup special remotes, this configures the location of the
1374 bup repository to use. Normally this is automatically set up by
1375 git annex initremote, but you can change it if needed.
1376
1377 remote.<name>.ddarrepo
1378 Used by ddar special remotes, this configures the location of
1379 the ddar repository to use. Normally this is automatically set
1380 up by git annex initremote, but you can change it if needed.
1381
1382 remote.<name>.directory
1383 Used by directory special remotes, this configures the location
1384 of the directory where annexed files are stored for this remote.
1385 Normally this is automatically set up by git annex initremote,
1386 but you can change it if needed.
1387
1388 remote.<name>.adb
1389 Used to identify remotes on Android devices accessed via adb.
1390 Normally this is automatically set up by git annex initremote.
1391
1392 remote.<name>.androiddirectory
1393 Used by adb special remotes, this is the directory on the
1394 Android device where files are stored for this remote. Normally
1395 this is automatically set up by git annex initremote, but you
1396 can change it if needed.
1397
1398 remote.<name>.androidserial
1399 Used by adb special remotes, this is the serial number of the
1400 Android device used by the remote. Normally this is automati‐
1401 cally set up by git annex initremote, but you can change it if
1402 needed, eg when upgrading to a new Android device.
1403
1404 remote.<name>.s3
1405 Used to identify Amazon S3 special remotes. Normally this is
1406 automatically set up by git annex initremote.
1407
1408 remote.<name>.glacier
1409 Used to identify Amazon Glacier special remotes. Normally this
1410 is automatically set up by git annex initremote.
1411
1412 remote.<name>.webdav
1413 Used to identify webdav special remotes. Normally this is auto‐
1414 matically set up by git annex initremote.
1415
1416 remote.<name>.tahoe
1417 Used to identify tahoe special remotes. Points to the configu‐
1418 ration directory for tahoe.
1419
1420 remote.<name>.gcrypt
1421 Used to identify gcrypt special remotes. Normally this is auto‐
1422 matically set up by git annex initremote.
1423
1424 It is set to "true" if this is a gcrypt remote. If the gcrypt
1425 remote is accessible over ssh and has git-annex-shell available
1426 to manage it, it's set to "shell".
1427
1428 remote.<name>.hooktype, remote.<name>.externaltype
1429 Used by hook special remotes and external special remotes to
1430 record the type of the remote.
1431
1432 annex.tune.objecthash1, annex.tune.objecthashlower, annex.tune.branch‐
1433 hash1
1434 These can be passed to git annex init to tune the repository.
1435 They cannot be safely changed in a running repository and should
1436 never be set in global git configuration. For details, see
1437 <https://git-annex.branchable.com/tuning/>.
1438
1440 The key-value backend used when adding a new file to the annex can be
1441 configured on a per-file-type basis via .gitattributes files. In the
1442 file, the annex.backend attribute can be set to the name of the backend
1443 to use. For example, this here's how to use the WORM backend by
1444 default, but the SHA256E backend for ogg files:
1445
1446 * annex.backend=WORM
1447 *.ogg annex.backend=SHA256E
1448
1449 There is a annex.largefiles attribute; which is used to configure which
1450 files are large enough to be added to the annex. See <https://git-
1451 annex.branchable.com/tips/largefiles> for details.
1452
1453 The numcopies setting can also be configured on a per-file-type basis
1454 via the annex.numcopies attribute in .gitattributes files. This over‐
1455 rides other numcopies settings. For example, this makes two copies be
1456 needed for wav files and 3 copies for flac files:
1457
1458 *.wav annex.numcopies=2
1459 *.flac annex.numcopies=3
1460
1461 Note that setting numcopies to 0 is very unsafe.
1462
1463 These settings are honored by git-annex whenever it's operating on a
1464 matching file. However, when using --all, --unused, or --key to specify
1465 keys to operate on, git-annex is operating on keys and not files, so
1466 will not honor the settings from .gitattributes. For this reason, the
1467 git annex numcopies command is useful to configure a global default for
1468 numcopies.
1469
1470 Also note that when using views, only the toplevel .gitattributes file
1471 is preserved in the view, so other settings in other files won't have
1472 any effect.
1473
1475 git-annex, when called as a git subcommand, may return exit codes 0 or
1476 1 for success or failures, or, more rarely, 127 or 128 for certain very
1477 specific failures. git-annex itself should return 0 on success and 1
1478 on failure, unless the --time-limit=time option is hit, in which case
1479 it returns with exit code 101.
1480
1482 These environment variables are used by git-annex when set:
1483
1484 GIT_WORK_TREE, GIT_DIR
1485 Handled the same as they are by git, see git(1)
1486
1487 GIT_SSH, GIT_SSH_COMMAND
1488 Handled similarly to the same as described in git(1). The one
1489 difference is that git-annex will sometimes pass an additional
1490 "-n" parameter to these, as the first parameter, to prevent ssh
1491 from reading from stdin. Since that can break existing uses of
1492 these environment variables that don't expect the extra parame‐
1493 ter, you will need to set GIT_ANNEX_USE_GIT_SSH=1 to make git-
1494 annex support these.
1495
1496 Note that setting either of these environment variables prevents
1497 git-annex from automatically enabling ssh connection caching
1498 (see annex.sshcaching), so it will slow down some operations
1499 with remotes over ssh. It's up to you to enable ssh connection
1500 caching if you need it; see ssh's documentation.
1501
1502 Also, annex.ssh-options and remote.<name>.annex-ssh-options
1503 won't have any effect when these envionment variables are set.
1504
1505 Usually it's better to configure any desired options through
1506 your ~/.ssh/config file, or by setting annex.ssh-options.
1507
1508 GIT_ANNEX_VECTOR_CLOCK
1509 Normally git-annex timestamps lines in the log files committed
1510 to the git-annex branch. Setting this environment variable to a
1511 number will make git-annex use that rather than the current num‐
1512 ber of seconds since the UNIX epoch. Note that decimal seconds
1513 are supported.
1514
1515 This is only provided for advanced users who either have a bet‐
1516 ter way to tell which commit is current than the local clock, or
1517 who need to avoid embedding timestamps for policy reasons. Mis‐
1518 use of this environment variable can confuse git-annex's
1519 book-keeping, sometimes in ways that git annex fsck is unable to
1520 repair.
1521
1522 Some special remotes use additional environment variables for
1523 authentication etc. For example, AWS_ACCESS_KEY_ID and
1524 GIT_ANNEX_P2P_AUTHTOKEN. See special remote documentation.
1525
1527 These files are used by git-annex:
1528
1529 .git/annex/objects/ in your git repository contains the annexed file
1530 contents that are currently available. Annexed files in your git repos‐
1531 itory symlink to that content.
1532
1533 .git/annex/ in your git repository contains other run-time information
1534 used by git-annex.
1535
1536 ~/.config/git-annex/autostart is a list of git repositories to start
1537 the git-annex assistant in.
1538
1539 .git/hooks/pre-commit-annex in your git repository will be run whenever
1540 a commit is made to the HEAD branch, either by git commit, git-annex
1541 sync, or the git-annex assistant.
1542
1543 .git/hooks/post-update-annex in your git repository will be run when‐
1544 ever the git-annex branch is updated. You can make this hook run git
1545 update-server-info when publishing a git-annex repository by http.
1546
1548 More git-annex documentation is available on its web site,
1549 <https://git-annex.branchable.com/>
1550
1551 If git-annex is installed from a package, a copy of its documentation
1552 should be included, in, for example, /usr/share/doc/git-annex/.
1553
1555 Joey Hess <id@joeyh.name>
1556
1557 <https://git-annex.branchable.com/>
1558
1559 git-annex(1)