File: git-ignore.md

package info (click to toggle)
git-extras 7.4.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 2,120 kB
  • sloc: sh: 4,312; python: 994; makefile: 146
file content (131 lines) | stat: -rw-r--r-- 4,203 bytes parent folder | download | duplicates (5)
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
121
122
123
124
125
126
127
128
129
130
131
git-ignore(1) -- Add .gitignore patterns
========================================

## SYNOPSIS

`git-ignore` [<context>] [<pattern> [<pattern>]...]

## DESCRIPTION

Adds the given _pattern_s to a .gitignore file if it doesn't already exist.

## OPTIONS

  <context>

  -l, --local

  Sets the context to the .gitignore file in the current working directory. (default)

  -g, --global

  Sets the context to the global gitignore file for the current user.

  -p, --private

  Sets the context to the private exclude file for the repository (`.git/info/exclude`).

  <pattern>

  A space delimited list of patterns to append to the file in context.

### PATTERN FORMAT

Pattern format as described in the git manual

 * A blank line matches no files, so it can serve as a separator for readability. To append a blank line use empty quotes "".

 * A line starting with # serves as a comment. For example, "# This is a comment"

 * An optional prefix ! which negates the pattern; any matching file excluded by a previous pattern will become included again. If a negated pattern matches, this will override lower precedence patterns sources. To use an exclamation ! as command line argument it is best placed between single quotes ''. For example, '!src'

 * If the pattern ends with a slash, it is removed for the purpose of the following description, but it would only find a match with a directory. In other words, foo/ will match a directory foo and paths underneath it, but will not match a regular file or a symbolic link foo (this is consistent with the way how pathspec works in general in git).

 * If the pattern does not contain a slash /, git treats it as a shell glob pattern and checks for a match against the pathname relative to the location of the .gitignore file (relative to the top level of the work tree if not from a .gitignore file).

 * Otherwise, git treats the pattern as a shell glob suitable for consumption by fnmatch(3) with the FNM_PATHNAME flag: wildcards in the pattern will not match a / in the pathname. For example, "Documentation/*.html" matches "Documentation/git.html" but not "Documentation/ppc/ppc.html" or "tools/perf/Documentation/perf.html".

 * A leading slash matches the beginning of the pathname. For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c".


## EXAMPLES

  All arguments are optional so calling git-ignore alone will display first the global then the local gitignore files:

    $ git ignore
    Global gitignore: /home/alice/.gitignore
    # Numerous always-ignore extensions
    *.diff
    *.err
    *.orig
    *.rej
    *.swo
    *.swp
    *.vi
    *~
    *.sass-cache

    # OS or Editor folders
    .DS_Store
    .Trashes
    ._*
    Thumbs.db
    ---------------------------------
    Local gitignore: .gitignore
    .cache
    .project
    .settings
    .tmproj
    nbproject

If you only want to see the global context use the --global argument (for local use --local):

    $ git ignore
    Global gitignore: /home/alice/.gitignore
    .DS_Store
    .Trashes
    ._*
    Thumbs.db

To quickly append a new pattern to the default/local context simply:

    $ git ignore *.log
    Adding pattern(s) to: .gitignore
    ... adding '*.log'

You can now configure any patterns without ever using an editor, with a context and pattern arguments:
The resulting configuration is also returned for your convenience.

    $ git ignore --local "" "# Temporary files" *.tmp "*.log" tmp/*  "" "# Files I'd like to keep" '!work'  ""
    Adding pattern(s) to: .gitignore
    ... adding ''
    ... adding '# Temporary files'
    ... adding 'index.tmp'
    ... adding '*.log'
    ... adding 'tmp/*'
    ... adding ''
    ... adding '# Files I'd like to keep'
    ... adding '!work'
    ... adding ''

    Local gitignore: .gitignore

    # Temporary files
    index.tmp
    *.log

    # Files I'd like to keep
    !work

## AUTHOR

Written by Tj Holowaychuk &lt;<tj@vision-media.ca>&gt; and Tema Bolshakov &lt;<tweekane@gmail.com>&gt;
and Nick Lombard &lt;<github@jigsoft.co.za>&gt;

## REPORTING BUGS

&lt;<https://github.com/tj/git-extras/issues>&gt;

## SEE ALSO

&lt;<https://github.com/tj/git-extras>&gt;