git-check-attr

From Get docs
Git/docs/latest/git-check-attr


git-check-attr

Name

git-check-attr - Display gitattributes information


Synopsis

git check-attr [-a | --all | <attr>…​] [--] <pathname>…​
git check-attr --stdin [-z] [-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.
--
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: COLON SP COLON SP LF

unless -z is in effect, in which case NUL is used as delimiter: NUL NUL NUL

is the path of a file being queried, is an attribute being queried and 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.
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.


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

See also

© 2012–2021 Scott Chacon and others
Licensed under the MIT License.
https://git-scm.com/docs/git-check-attr