git-check-attr - Display gitattributes information
Contents
Description
For every pathname, this command will list if each attribute is unspecified, set, or unset as a
gitattribute on that pathname.
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
Git 2.48.1 07/02/2025 GIT-CHECK-ATTR(1)
Name
git-check-attr - Display gitattributes information
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:
unspecified
when the attribute is not defined for the path.
unset
when the attribute is defined as false.
set
when the attribute is defined as true.
<value>
when a value has been assigned to the attribute.
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.
See Also
gitattributes(5).
Synopsis
gitcheck-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
gitcheck-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
