git-lfs/docs/man/git-lfs-track.1.ronn
brian m. carlson 24ba71af7e
docs: explain shell metacharacters better
It's a surprise to many users that bracket characters are treated
specially in the shell, especially Windows users or other users who are
not intimately familiar with the various peculiarities of shell.  As a
consequence, users are also surprised when putting brackets into a `git
lfs track` pattern doesn't work as expected.

Let's help these users out by explaining exactly what characters are
special and what are ignored, since folks don't always dive into the Git
attribute documentation.  Let's also provide an example of tracking a
file with brackets in the name to reinforce the use of the `--filename`
option as well.
2019-11-15 19:10:13 +00:00

81 lines
2.5 KiB
Markdown

git-lfs-track(1) - View or add Git LFS paths to Git attributes
==============================================================
## SYNOPSIS
`git lfs track` [options] [<pattern>...]
## DESCRIPTION
Start tracking the given patterns(s) through Git LFS. The <pattern> argument
is written to .gitattributes. If no paths are provided, simply list the
currently-tracked paths.
The [gitattributes documentation](https://git-scm.com/docs/gitattributes) states
that patterns use the [gitignore pattern rules](https://git-scm.com/docs/gitignore)
to match paths. This means that patterns which contain asterisk (`*`), question
mark (`?`), and the bracket characters (`[` and `]`) are treated specially; to
disable this behavior and treat them literally instead, use `--filename` or
escape the character with a backslash.
## OPTIONS
* `--verbose` `-v`:
If enabled, have `git lfs track` log files which it will touch. Disabled by
default.
* `--dry-run` `-d`:
If enabled, have `git lfs track` log all actions it would normally take
(adding entries to .gitattributes, touching files on disk, etc) without
performing any mutative operations to the disk.
`git lfs track --dry-run [files]` also implicitly mocks the behavior of
passing the `--verbose`, and will log in greater detail what it is doing.
Disabled by default.
* `--filename`
Treat the arguments as literal filenames, not as patterns. Any special glob
characters in the filename will be escaped when writing the `.gitattributes`
file.
* `--lockable` `-l`
Make the paths 'lockable', meaning they should be locked to edit them, and
will be made read-only in the working copy when not locked.
* `--not-lockable`
Remove the lockable flag from the paths so they are no longer read-only unless
locked.
* `--no-excluded`
Do not list patterns that are excluded in the output; only list patterns that
are tracked.
* `--no-modify-attrs`
Makes matched entries stat-dirty so that Git can re-index files you wish to
convert to LFS. Does not modify any `.gitattributes` file(s).
## EXAMPLES
* List the patterns that Git LFS is currently tracking:
`git lfs track`
* Configure Git LFS to track GIF files:
`git lfs track "*.gif"`
* Configure Git LFS to track PSD files and make them read-only unless locked:
`git lfs track --lockable "*.psd"`
* Configure Git LFS to track the file named `project [1].psd`:
`git lfs track --filename "project [1].psd"`
## SEE ALSO
git-lfs-untrack(1), git-lfs-install(1), gitattributes(5), gitignore(5).
Part of the git-lfs(1) suite.