git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <junkio@cox.net>
To: Johan Herland <johan@herland.net>
Cc: git@vger.kernel.org, "Randal L. Schwartz" <merlyn@stonehenge.com>
Subject: Re: [PATCH] user-manual: Add section on ignoring files
Date: Tue, 15 May 2007 16:30:29 -0700	[thread overview]
Message-ID: <7v1whhis16.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <200705160047.52717.johan@herland.net> (Johan Herland's message of "Wed, 16 May 2007 00:47:52 +0200")

Johan Herland <johan@herland.net> writes:

> +[[ignoring-files]]
> +Ignoring files
> +--------------

Looks good ;-).

> +A project will often generate files that you do 'not' want to track with git.
> +This typically includes files generated by a build process or temporary
> +backup files made by your editor. Of course, 'not' tracking files with git
> +is just a matter of 'not' calling "git add" on them. But it might be
> +annoying to have these untracked files automatically showing up in the
> +output of "git status", in the commit message template, etc.

Another point about this annoyance factor is that "git-add ."
does not add files that are excluded.

> +Git therefore provides "exclude patterns" for telling git which files to
> +actively ignore. Exclude patterns are thoroughly explained in the
> +"Exclude Patterns" section of the gitlink:git-ls-files[1] manual page,
> +but the heart of the concept is simply a list of files which git should
> +ignore. Entries in the list may contain globs to specify multiple files,
> +or may be prefixed by "`!`" to explicitly include (un-ignore) a file.

I think you can safely teach the reader that later entries
override the earlier ones here, as you are about to give such an
example just below.

> +The following example should illustrate such patterns:
> +
> +-------------------------------------------------
> +# Lines starting with '#' are considered comments.
> +# Ignore foo.txt.
> +foo.txt
> +# Ignore (generated) html files,
> +*.html
> +# except foo.html which is maintained by hand.
> +!foo.html
> +# Ignore objects and archives.
> +*.[oa]
> +-------------------------------------------------

> +The next question is where to put these exclude patterns so that git can
> +find them. Git looks for exclude patterns in the following files:
> +
> +`.gitignore` files in your working tree:::
> +	   You may store multiple `.gitignore` files at various locations in your
> +	   working tree. Each `.gitignore` file is applied to the directory where
> +	   it's located, including its subdirectories. Furthermore, the
> +	   `.gitignore` files can be tracked like any other files in your working
> +	   tree; just do a `git add .gitignore` and commit. `.gitignore` is
> +	   therefore the perfect place to put exclude patterns that match
> +	   ignored files that pop up in every copy of your project, such as
> +	   build output files (e.g. `\*.o`), etc.

... and more importantly, the patterns that are _meant_ to be
shared by all the project participants.  I think it is probably
easier to follow if you explain that in-tree .gitignore is not
about personal preference upfront in this section, rather than
saying it in .git/info/exclude section.

  parent reply	other threads:[~2007-05-15 23:31 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-15 22:47 [PATCH] user-manual: Add section on ignoring files Johan Herland
2007-05-15 23:24 ` Jakub Narebski
2007-05-15 23:31   ` Johan Herland
2007-05-15 23:30 ` Junio C Hamano [this message]
2007-05-16  0:31   ` Johan Herland
2007-05-16  0:42     ` Junio C Hamano
2007-05-16  7:28       ` Johan Herland
2007-05-16  3:30     ` J. Bruce Fields
2007-05-16  7:38       ` Johan Herland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7v1whhis16.fsf@assigned-by-dhcp.cox.net \
    --to=junkio@cox.net \
    --cc=git@vger.kernel.org \
    --cc=johan@herland.net \
    --cc=merlyn@stonehenge.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).