about summary refs log tree commit diff
path: root/Documentation/git-check-attr.txt
blob: 84f41a8e82590f54bca103a067a95348093844b5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
git-check-attr(1)
=================

NAME
----
git-check-attr - Display gitattributes information


SYNOPSIS
--------
[verse]
'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:
<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
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
--------
linkgit:gitattributes[5].

GIT
---
Part of the linkgit:git[1] suite