gitignore 

Send to Kindle
home » snippets » git » gitignore



Snippets

# Set user global git ignore patterns file.
git config --global core.excludesfile $HOME/ck/customize/git/core.excludesfile

Sample file.

# Refer http://www.kernel.org/pub/software/scm/git/docs/gitignore.html
#
# The following comment text has been copied from the url above.
#
# A gitignore file specifies intentionally untracked
# files that git should ignore. Note that all the
# gitignore files really concern only files that are not
# already tracked by git; in order to ignore uncommitted
# changes in already tracked files, please refer to the
# git update-index --assume-unchanged documentation.
#
# Each line in a gitignore file specifies a pattern.
# When deciding whether to ignore a path, git normally
# checks gitignore patterns from multiple sources, with
# the following order of precedence, from highest to
# lowest (within one level of precedence, the last
# matching pattern decides the outcome):
#
#     * Patterns read from the command line for those
#       commands that support them.
#     * Patterns read from a .gitignore file in the same
#       directory as the path, or in any parent directory,
#       with patterns in the higher level files (up to the
#       toplevel of the work tree) being overridden by
#       those in lower level files down to the directory
#       containing the file. These patterns match relative
#       to the location of the .gitignore file. A project
#       normally includes such .gitignore files in its
#       repository, containing patterns for files
#       generated as part of the project build.
#     * Patterns read from $GIT_DIR/info/exclude.
#     * Patterns read from the file specified by the
#       configuration variable core.excludesfile.
#
# Which file to place a pattern in depends on how the
# pattern is meant to be used. Patterns which should be
# version-controlled and distributed to other
# repositories via clone (i.e., files that all
# developers will want to ignore) should go into a
# .gitignore file. Patterns which are specific to a
# particular repository but which do not need to be
# shared with other related repositories (e.g.,
# auxiliary files that live inside the repository but
# are specific to one user's workflow) should go into
# the $GIT_DIR/info/exclude file. Patterns which a user
# wants git to ignore in all situations (e.g., backup or
# temporary files generated by the user's editor of
# choice) generally go into a file specified by
# core.excludesfile in the user's ~/.gitconfig.
#
# The underlying git plumbing tools, such as
# git-ls-files and git-read-tree, read gitignore
# patterns specified by command-line options, or from
# files specified by command-line options. Higher-level
# git tools, such as git-status and git-add, use
# patterns from the sources specified above.
#
# Patterns have the following format:
#
#     * A blank line matches no files, so it can serve
#       as a separator for readability.
#     * A line starting with # serves as 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.
#     * 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 without leading
#       directories.
#     * 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".
#       A leading slash matches the beginning of the
#       pathname; for example, "/*.c" matches
#       "cat-file.c" but not "mozilla-sha1/sha1.c".


# My ignore patterns.

# Emacs byte-compiled files and desktop files, etc.
*.elc
emacs-desktop
.emacs.desktop.lock

# Python byte-compiled files.
*.pyc
*.pyc-2.4
*.pyc-2.5
*.pyc-2.6
*.pyc-2.7
*.pyc-3.0

# Backups.
*.bak
\#*#
*.*~

# Temp files.
*.tmp
*.swp

# Mac related files.
.DS_Store
Desktop\ DB
Desktop\ DF

# VCS stuff.
.svn

# Tags.
tags
etags
TAGS
ETAGS
PYSMELLTAGS

# Lock files
.lock*