126 lines
3.3 KiB

git-check-attr - Display gitattributes information
'git check-attr' [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
'git check-attr' --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
For every pathname, this command will list if each attribute is 'unspecified',
'set', or 'unset' as a gitattribute on that pathname.
-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.
Consider `.gitattributes` in the index only, ignoring the working tree.
Read pathnames from the standard input, one per line,
instead of from the command-line.
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.
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
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
linkgit:git[1]. The caller is responsible for avoiding deadlocks
caused by overfilling an input buffer or reading from an empty output
In the examples, the following '.gitattributes' file is used:
*.java diff=java -crlf myAttr !myAttr
README caveat=unspecified
* Listing a single attribute:
$ git check-attr diff org/example/
org/example/ diff: java
* Listing multiple attributes for a file:
$ git check-attr crlf diff myAttr -- org/example/
org/example/ crlf: unset
org/example/ diff: java
org/example/ myAttr: set
* Listing all attributes for a file:
$ git check-attr --all -- org/example/
org/example/ diff: java
org/example/ myAttr: set
* Listing an attribute for multiple files:
$ git check-attr myAttr -- org/example/ org/example/
org/example/ myAttr: set
org/example/ myAttr: unspecified
* Not all values are equally unambiguous:
$ git check-attr caveat README
README: caveat: unspecified
Part of the linkgit:git[1] suite