git-lfs-fetch - Download all Git LFS files for a given
ref
git lfs fetch [options] [remote [ref...]]
Download Git LFS objects at the given refs from the specified
remote. See #DEFAULT-REMOTE and #DEFAULT-REFS for what happens
if you don´t specify.
This does not update the working copy.
- -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
- --recent
- Download objects referenced by recent branches & commits in addition
to those that would otherwise be downloaded. See
#RECENT-CHANGES
- --all
- Download all objects referenced by any commit that is reachable; this is
primarily for backup / migration purposes. Cannot be combined with
--recent or --include/--exclude. Ignores any globally configured include
and exclude paths to ensure that all objects are downloaded.
- --prune
-p
- Prune old and unreferenced objects after fetching, equivalent to running
git lfs prune afterwards. See git-lfs-prune(1) for more
details.
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 gitconfig, set lfs.fetchinclude and
lfs.fetchexclude to comma-separated lists of paths to include/exclude
in the fetch. Only paths which are matched by fetchinclude and not
matched by fetchexclude will have objects fetched for them.
- ○
- git config lfs.fetchinclude "textures,images/foo*"
- This will only fetch objects referenced in paths in the textures folder,
and files called foo* in the images folder
- ○
- git config lfs.fetchinclude "*.jpg,*.png,*.tga"
- Only fetch JPG/PNG/TGA files, wherever they are in the repository
- ○
- git config lfs.fetchexclude "media/reallybigfiles"
- Don´t fetch any LFS objects referenced in the folder
media/reallybigfiles, but fetch everything else
- ○
- git config lfs.fetchinclude "media"
git config lfs.fetchexclude "media/excessive"
- Only fetch LFS objects in the ´media´ folder, but exclude
those in one of its subfolders.
-
Without arguments, fetch downloads from the default remote. The
default remote is the same as for git fetch, i.e. based on the remote
branch you´re tracking first, or origin otherwise.
If no refs are given as arguments, the currently checked out ref
is used. In addition, if enabled, recently changed refs and commits are also
included. See #RECENT-CHANGES for details.
If the --recent option is specified, or if the gitconfig
option lfs.fetchrecentalways is true, then after the current ref (or
those in the arguments) is fetched, we also search for
´recent´ changes to fetch objects for, so that it´s
more convenient to checkout or diff those commits without incurring further
downloads.
What changes are considered ´recent´ is based on a
number of gitconfig options:
- ○
- lfs.fetchrecentrefsdays If non-zero, includes branches which have
commits within N days of the current date. Only local refs are included
unless lfs.fetchrecentremoterefs is true. The default is 7 days.
- ○
- lfs.fetchrecentremoterefs If true, fetches remote refs (for the
remote you´re fetching) as well as local refs in the recent window.
This is useful to fetch objects for remote branches you might want to
check out later. The default is true; if you set this to false, fetching
for those branches will only occur when you either check them out (losing
the advantage of fetch --recent), or create a tracking local branch
separately then fetch again.
- ○
- lfs.fetchrecentcommitsdays In addition to fetching at branches,
also fetches changes made within N days of the latest commit on the
branch. This is useful if you´re often reviewing recent changes.
The default is 0 (no previous changes).
- ○
- lfs.fetchrecentalways Always operate as if --recent was provided on
the command line.
-
- ○
- Fetch the LFS objects for the current ref from default remote
- git lfs fetch
- ○
- Fetch the LFS objects for the current ref AND recent changes from default
remote
- git lfs fetch --recent
- ○
- Fetch the LFS objects for the current ref from a secondary remote
´upstream´
- git lfs fetch upstream
- ○
- Fetch the LFS objects for a branch from origin
- git lfs fetch origin mybranch
- ○
- Fetch the LFS objects for 2 branches and a commit from origin
- git lfs fetch origin master mybranch
e445b45c1c9c6282614f201b62778e4c0688b5c8
-