X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=Documentation%2Fgitattributes.txt;h=db16b0ca5b8146361a379de894a1394e0950fd38;hb=652b0bbe09c909eb5aa34be8746071f1c5c0e73d;hp=6e67990f64372855dd665da4747a7f7c235ac856;hpb=6b516d984bc72b359a14eeddfddca578cef52297;p=git.git diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt index 6e67990f6..db16b0ca5 100644 --- a/Documentation/gitattributes.txt +++ b/Documentation/gitattributes.txt @@ -87,9 +87,9 @@ Checking-out and checking-in These attributes affect how the contents stored in the repository are copied to the working tree files when commands -such as `git checkout` and `git merge` run. They also affect how +such as 'git-checkout' and 'git-merge' run. They also affect how git stores the contents you prepare in the working tree in the -repository upon `git add` and `git commit`. +repository upon 'git-add' and 'git-commit'. `crlf` ^^^^^^ @@ -148,16 +148,16 @@ an irreversible conversion. The safety triggers to prevent such a conversion done to the files in the work tree, but there are a few exceptions. Even though... -- "git add" itself does not touch the files in the work tree, the +- 'git-add' itself does not touch the files in the work tree, the next checkout would, so the safety triggers; -- "git apply" to update a text file with a patch does touch the files +- 'git-apply' to update a text file with a patch does touch the files in the work tree, but the operation is about text files and CRLF conversion is about fixing the line ending inconsistencies, so the safety does not trigger; -- "git diff" itself does not touch the files in the work tree, it is - often run to inspect the changes you intend to next "git add". To +- 'git-diff' itself does not touch the files in the work tree, it is + often run to inspect the changes you intend to next 'git-add'. To catch potential problems early, safety triggers. @@ -214,7 +214,7 @@ with `crlf`, and then `ident` and fed to `filter`. Generating diff text ~~~~~~~~~~~~~~~~~~~~ -The attribute `diff` affects if `git diff` generates textual +The attribute `diff` affects if 'git-diff' generates textual patch for the path or just says `Binary files differ`. It also can affect what line is shown on the hunk header `@@ -k,l +n,m @@` line. @@ -278,7 +278,7 @@ is prefixed with a line of the form: The text is called 'hunk header', and by default a line that begins with an alphabet, an underscore or a dollar sign is used, -which matches what GNU `diff -p` output uses. This default +which matches what GNU 'diff -p' output uses. This default selection however is not suited for some contents, and you can use customized pattern to make a selection. @@ -307,9 +307,18 @@ backslash, and zero or more occurrences of `sub` followed by There are a few built-in patterns to make this easier, and `tex` is one of them, so you do not have to write the above in your configuration file (you still need to enable this with the -attribute mechanism, via `.gitattributes`). Another built-in -pattern is defined for `java` that defines a pattern suitable -for program text in Java language. +attribute mechanism, via `.gitattributes`). The following built in +patterns are available: + +- `bibtex` suitable for files with BibTeX coded references. + +- `java` suitable for source code in the Java lanugage. + +- `pascal` suitable for source code in the Pascal/Delphi language. + +- `ruby` suitable for source code in the Ruby language. + +- `tex` suitable for source code for LaTeX documents. Performing a three-way merge @@ -322,7 +331,7 @@ and other programs such as `git revert` and `git cherry-pick`. Set:: Built-in 3-way merge driver is used to merge the - contents in a way similar to `merge` command of `RCS` + contents in a way similar to 'merge' command of `RCS` suite. This is suitable for ordinary text files. Unset:: @@ -426,7 +435,7 @@ Checking whitespace errors ^^^^^^^^^^^^ The `core.whitespace` configuration variable allows you to define what -`diff` and `apply` should consider whitespace errors for all paths in +'diff' and 'apply' should consider whitespace errors for all paths in the project (See linkgit:git-config[1]). This attribute gives you finer control per path. @@ -450,6 +459,29 @@ String:: variable. +Creating an archive +~~~~~~~~~~~~~~~~~~~ + +`export-ignore` +^^^^^^^^^^^^^^^ + +Files and directories with the attribute `export-ignore` won't be added to +archive files. + +`export-subst` +^^^^^^^^^^^^^^ + +If the attribute `export-subst` is set for a file then git will expand +several placeholders when adding this file to an archive. The +expansion depends on the availability of a commit ID, i.e., if +linkgit:git-archive[1] has been given a tree instead of a commit or a +tag then no replacement will be done. The placeholders are the same +as those for the option `--pretty=format:` of linkgit:git-log[1], +except that they need to be wrapped like this: `$Format:PLACEHOLDERS$` +in the file. E.g. the string `$Format:%H$` will be replaced by the +commit hash. + + EXAMPLE ------- @@ -499,28 +531,6 @@ frotz unspecified ---------------------------------------------------------------- -Creating an archive -~~~~~~~~~~~~~~~~~~~ - -`export-ignore` -^^^^^^^^^^^^^^^ - -Files and directories with the attribute `export-ignore` won't be added to -archive files. - -`export-subst` -^^^^^^^^^^^^^^ - -If the attribute `export-subst` is set for a file then git will expand -several placeholders when adding this file to an archive. The -expansion depends on the availability of a commit ID, i.e. if -linkgit:git-archive[1] has been given a tree instead of a commit or a -tag then no replacement will be done. The placeholders are the same -as those for the option `--pretty=format:` of linkgit:git-log[1], -except that they need to be wrapped like this: `$Format:PLACEHOLDERS$` -in the file. E.g. the string `$Format:%H$` will be replaced by the -commit hash. - GIT ---