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