path: root/Documentation/gitattributes.txt
diff options
authorJunio C Hamano <>2008-08-30 21:35:15 (GMT)
committerJunio C Hamano <>2008-08-31 03:30:45 (GMT)
commitbbb896d8e10f736bfda8f587c0009c358c9a8599 (patch)
treeb83f28279a68439b9b044bccc313bbeaa3e973f5 /Documentation/gitattributes.txt
parented0f47a8c431f27e0bd131ea1cf9cabbd580745b (diff)
gitattributes: -crlf is not binary
The description of crlf attribute incorrectly said that "-crlf" means binary. It is true that for binary files you would want "-crlf", but that is not the same thing. We also have supported attribute macros and via that mechanism a handy "binary" to specify "-crlf -diff" at the same time. It was not documented anywhere as far as I can tell, even though the support was there from the very beginning. Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'Documentation/gitattributes.txt')
1 files changed, 37 insertions, 3 deletions
diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt
index db16b0c..1993887 100644
--- a/Documentation/gitattributes.txt
+++ b/Documentation/gitattributes.txt
@@ -105,9 +105,8 @@ Set::
- Unsetting the `crlf` attribute on a path is meant to
- mark the path as a "binary" file. The path never goes
- through line endings conversion upon checkin/checkout.
+ Unsetting the `crlf` attribute on a path tells git not to
+ attempt any end-of-line conversion upon checkin or checkout.
@@ -482,6 +481,41 @@ in the file. E.g. the string `$Format:%H$` will be replaced by the
commit hash.
+You do not want any end-of-line conversions applied to, nor textual diffs
+produced for, any binary file you track. You would need to specify e.g.
+*.jpg -crlf -diff
+but that may become cumbersome, when you have many attributes. Using
+attribute macros, you can specify groups of attributes set or unset at
+the same time. The system knows a built-in attribute macro, `binary`:
+*.jpg binary
+which is equivalent to the above. Note that the attribute macros can only
+be "Set" (see the above example that sets "binary" macro as if it were an
+ordinary attribute --- setting it in turn unsets "crlf" and "diff").
+Custom attribute macros can be defined only in the `.gitattributes` file
+at the toplevel (i.e. not in any subdirectory). The built-in attribute
+macro "binary" is equivalent to:
+[attr]binary -diff -crlf