git-annex-pull(1)
π¦ git-annex-pull β the manual page, bestie edition π¦
okay so you're reading the git-annex-pull(1) page from the General Commands Manual and honestly? it's a good one. let's get into it π
β¨ NAME β¨
git-annex-pull β pull content from remotes. that's it. that's the vibe π«Ά
β¨ SYNOPSIS β¨
git annex pull [remote ...]
β¨ DESCRIPTION β¨
so this command pulls content from remotes, no cap. it downloads both git repository content AND the content of annexed files. and like git pull, it merges changes into the current branch. main character energy fr π₯
you could just run git pull and git-annex get by hand to do the same thing, but this command handles a bunch of details for you β including making sure the git-annex branch actually gets fetched from the remote. lowkey iconic of it π
some special remotes contain a tree of files that can be imported, and this command can pull from those remotes as well as from regular git remotes. see git-annex-import(1) for the whole breakdown on how those special remotes work. but heads up bestie: in order for this command to import from a special remote, remote.<name>.annex-tracking-branch also has to be configured, and it must have the same value as the currently checked out branch. yes that's specific. yes it matters π
when git-annex-adjust(1) has been used to check out an adjusted branch, this command will also pull changes from the parent branch. cute πΈ
when git-annex-view(1) has been used to check out a view branch, this command updates the view branch to reflect any changes to the parent branch or metadata. slay β¨
when git-annex-migrate(1) has been used in other repositories, this updates the content in the local repository for those migrations as well. teamwork π
normally this tries to download the content of each annexed file, from any remote that it's pulling from that has a copy. to control which files it downloads, configure the preferred content of the local repository. it will also drop files from the local repository that are not preferred content. see git-annex-preferred-content(1). so yeah, it giveth and it taketh away π
β¨ OPTIONS β¨
[remote]β by default this command pulls from all available remotes, except for remotes that haveremote.<name>.annex-pull(orremote.<name>.annex-sync) set tofalse. by naming remotes (or remote groups), you control which ones it pulls from. you're the boss π--fastβ only pull with the remotes that have the lowestannex-costvalue configured. when you give it a list of remotes (or remote groups), it picks from among those; otherwise it picks from among all remotes. speedrun strats πββοΈ--only-annex,-a,--not-only-annexβ only pull the git-annex branch and annexed content from remotes, not other git branches. theannex.synconlyannexconfiguration can be set totrueto make this the default behavior β and to override such a setting, use--not-only-annex. when this is combined with--no-content, only the git-annex branch will be pulled. minimalism π--no-content,-g,--contentβ use--no-contentor-gto avoid downloading (and dropping) the content of annexed files, and also prevent doing any migrations of content. if you often use--no-content, you can set theannex.synccontentconfiguration tofalseto prevent downloading content by default β the--contentoption overrides that configuration. and to only prevent migrations of content, you can set theannex.syncmigrationsconfiguration tofalseβ the--contentoption overrides that configuration as well. so many layers, we love a config queen π--content-of=path,-C pathβ only download (and drop) annexed files in the given path. this option can be repeated multiple times with different paths. picky and we respect it π¦--all,-Aβ usually this command operates on annexed files in the current branch. this option makes it operate on all available versions of all annexed files (when preferred content settings allow). note that preferred content settings that useinclude=orexclude=will only match the version of files currently in the work tree, but not past versions of files. β οΈ read that twice bestie--jobs=N,-JNβ enables parallel pulling with up to the specified number of jobs running at once. for example:-J10. setting this to"cpus"will run one job per CPU core. (note that git pulls are not done in parallel because that tends to be less efficient.) multitasking icon π₯--allow-unrelated-histories,--no-allow-unrelated-historiesβ passed on togit merge, to control whether or not to merge histories that do not share a common ancestor. drama resolution settings π--resolvemerge,--no-resolvemergeβ by default, merge conflicts are automatically handled by this command. when two conflicting versions of a file have been committed, both will be added to the tree, under different filenames. for example, file"foo"would be replaced with"foo.variant-A"and"foo.variant-B". (seegit-annex-resolvemerge(1)for details.) use--no-resolvemergeto disable this automatic merge conflict resolution β it can also be disabled by settingannex.resolvemergetofalse. no fighting on my watch π€--backendβ specifies which key-value backend to use when importing from a special remote. π§
also the git-annex-common-options(1) can be used. free real estate β¨
β¨ SEE ALSO β¨
git-annex(1)git-annex-push(1)git-annex-sync(1)git-annex-preferred-content(1)git-annex-satisfy(1)
go read those too, iykyk π
β¨ AUTHOR β¨
Joey Hess <id@joeyh.name> β the legend themselves ππ
and that's the page!! this whole thing is git-annex-pull(1) from the General Commands Manual, and yeah the footer really is just git-annex-pull(1) again β consider this your cute little sign-off, bestie πβ go pull something great π«Ά
π¦ where this page comes from
- alpine 3.24: git-annex-doc 10.20261026-r0 Β· AGPL-3.0-or-later
- arch rolling: git-annex 10.20261026-2 Β· AGPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms