GIT-LFS-PULL(1)

NAME
git-lfs-pull - Download all Git LFS files for current ref & checkout

SYNOPSIS

git lfs pull [options] [<remote>]

DESCRIPTION

Download Git LFS objects for the currently checked out ref, and update the working copy with the downloaded content if required.

This is generally equivalent to running the following two commands:

    $ git lfs fetch [options] [<remote>]
    $ git lfs checkout

If the installed Git version is at least 2.42.0, in a non-bare repository this command will by default fetch and check out Git LFS objects for files only if they are present in the Git index and if they match a Git LFS filter attribute from a .gitattributes file that is present in either the index or the current working tree (or, as is always the case, if they match a Git LFS filter attribute in a local gitattributes file such as $GIT_DIR/info/attributes). These constraints do not apply with prior versions of Git.

In a repository with a partial clone or sparse checkout, it is therefore advisable to check out all .gitattributes files from HEAD before using this command, if Git v2.42.0 or later is installed. Alternatively, the GIT_ATTR_SOURCE environment variable may be set to HEAD, which will cause Git to only read attributes from .gitattributes files in HEAD and ignore those in the index or working tree.

In a bare repository, if the installed Git version is at least 2.42.0, this command will by default fetch Git LFS objects for files only if they are present in the Git index and if they match a Git LFS filter attribute from a local gitattributes file such as $GIT_DIR/info/attributes. Any .gitattributes files in HEAD will be ignored, unless the GIT_ATTR_SOURCE environment variable is set to HEAD, and any .gitattributes files in the index or current working tree will always be ignored. These constraints do not apply with prior versions of Git.

OPTIONS

-I <paths>, --include=<paths>
    Specify lfs.fetchinclude just for this invocation; see INCLUDE AND EXCLUDE

-X <paths>, --exclude=<paths>
    Specify lfs.fetchexclude just for this invocation; see INCLUDE AND EXCLUDE

INCLUDE AND EXCLUDE

You can configure Git LFS to only fetch objects to satisfy references in certain paths of the repo, and/or to exclude certain paths of the repo, to reduce the time you spend downloading things you do not use.

In your Git configuration or in a .lfsconfig file, you may set either or both of lfs.fetchinclude and lfs.fetchexclude to comma-separated lists of paths. If lfs.fetchinclude is defined, Git LFS objects will only be fetched if their path matches one in that list, and if lfs.fetchexclude is defined, Git LFS objects will only be fetched if their path does not match one in that list. Paths are matched using wildcard matching as per gitignore(5).

Note that using the command-line options -I and -X override the respective configuration settings. Setting either option to an empty string clears the value.

DEFAULT REMOTE

Without arguments, pull downloads from the default remote. The default remote is the same as for git pull, i.e. based on the remote branch you’re tracking first, or origin otherwise.

SEE ALSO

git-lfs-fetch(1), git-lfs-checkout(1), gitattributes(5), gitignore(5).

Part of the git-lfs(1) suite.