Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.43.1 → 2.47.0 no changes
- 2.43.0 11/20/23
- 2.40.1 → 2.42.3 no changes
- 2.40.0 03/12/23
- 2.25.1 → 2.39.5 no changes
- 2.25.0 01/13/20
- 2.18.1 → 2.24.4 no changes
- 2.18.0 06/21/18
- 2.7.6 → 2.17.6 no changes
- 2.6.7 05/05/17
- 2.1.4 → 2.5.6 no changes
- 2.0.5 12/17/14
SYNOPSIS
git check-attr [--source <tree-ish>] [-a | --all | <attr>…] [--] <pathname>… git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>…]
DESCRIPTION
For every pathname, this command will list if each attribute is unspecified, set, or unset as a gitattribute on that pathname.
OPTIONS
- -a, --all
-
List all attributes that are associated with the specified paths. If this option is used, then unspecified attributes will not be included in the output.
- --cached
-
Consider
.gitattributes
in the index only, ignoring the working tree. - --stdin
-
Read pathnames from the standard input, one per line, instead of from the command line.
- -z
-
The output format is modified to be machine-parsable. If
--stdin
is also given, input paths are separated with a NUL character instead of a linefeed character. - --source=<tree-ish>
-
Check attributes against the specified tree-ish. It is common to specify the source tree by naming a commit, branch, or tag associated with it.
- --
-
Interpret all preceding arguments as attributes and all following arguments as path names.
If none of --stdin
, --all
, or --
is used, the first argument
will be treated as an attribute and the rest of the arguments as
pathnames.
OUTPUT
The output is of the form: <path> COLON SP <attribute> COLON SP <info> LF
unless -z
is in effect, in which case NUL is used as delimiter:
<path> NUL <attribute> NUL <info> NUL
<path> is the path of a file being queried, <attribute> is an attribute being queried, and <info> can be either:
Buffering happens as documented under the GIT_FLUSH
option in
git[1]. The caller is responsible for avoiding deadlocks
caused by overfilling an input buffer or reading from an empty output
buffer.
EXAMPLES
In the examples, the following .gitattributes file is used:
*.java diff=java -crlf myAttr NoMyAttr.java !myAttr README caveat=unspecified
-
Listing a single attribute:
$ git check-attr diff org/example/MyClass.java org/example/MyClass.java: diff: java
-
Listing multiple attributes for a file:
$ git check-attr crlf diff myAttr -- org/example/MyClass.java org/example/MyClass.java: crlf: unset org/example/MyClass.java: diff: java org/example/MyClass.java: myAttr: set
-
Listing all attributes for a file:
$ git check-attr --all -- org/example/MyClass.java org/example/MyClass.java: diff: java org/example/MyClass.java: myAttr: set
-
Listing an attribute for multiple files:
$ git check-attr myAttr -- org/example/MyClass.java org/example/NoMyAttr.java org/example/MyClass.java: myAttr: set org/example/NoMyAttr.java: myAttr: unspecified
-
Not all values are equally unambiguous:
$ git check-attr caveat README README: caveat: unspecified
GIT
Part of the git[1] suite