= git-lfs-clone(1)

== NAME

git-lfs-clone - Efficiently clone a LFS-enabled repository

== SYNOPSIS

`git lfs clone` [git clone options] <repository> [<directory>]

== DESCRIPTION

Clone an LFS enabled Git repository more efficiently by disabling LFS
during the git clone, then performing a 'git lfs pull' directly
afterwards.

'git lfs clone' also installs all of the repo-level hooks (.git/hooks)
that LFS requires to operate. If `--separate-git-dir` is given, the
hooks will be installed there.

This is faster than a regular 'git clone' because that will download LFS
content using the smudge filter, which is executed individually per file
in the working copy. This is relatively inefficient compared to the
batch mode and parallel downloads performed by 'git lfs pull'.

== OPTIONS

All options supported by 'git clone'

`-I <paths>`::
`--include=<paths>`::
  See <<_include_and_exclude>>.
`-X <paths>`::
`--exclude=<paths>`::
  See <<_include_and_exclude>>.
`--skip-repo`::
  Skip installing repo-level hooks (.git/hooks) that LFS
  requires. Disabled by default.

== 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.

== SEE ALSO

git-clone(1), git-lfs-pull(1), gitignore(5).

Part of the git-lfs(1) suite.
