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 <<tj@vision-media.ca>> and Tema Bolshakov <<tweekane@gmail.com>>
and Nick Lombard <<github@jigsoft.co.za>>
## REPORTING BUGS
<<https://github.com/tj/git-extras/issues>>
## SEE ALSO
<<https://github.com/tj/git-extras>>
|