---
name: "git-lfs-track"
section: "1"
platform: "linux"
package: "git-lfs"
version: "3.8.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/git-lfs-track"
---

# git-lfs-track(1)

View or add Git LFS paths to Git attributes

## NAME

git-lfs-track - 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 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

- `-v`, `--verbose`

  If enabled, have `git lfs track` log files which it will touch. Disabled by default.

- `-d`, `--dry-run`

  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.

- `-j`, `--json`

  Writes the currently tracked patterns as JSON to STDOUT, if the command exits successfully. Intended for interoperation with external tools. Can not be combined with any `<pattern>` arguments. If `--no-excluded` is also provided, that option will have no effect.

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

- `-l`, `--lockable`

  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-untrack/1.md), [git-lfs-install(1)](/git-lfs-install/1.md), [gitattributes(5)](/gitattributes/5.md), [gitignore(5)](/gitignore/5.md).

Part of the [git-lfs(1)](/git-lfs/1.md) suite.
