Re: [PATCH] user-manual: Add section on ignoring files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Johan Herland <johan@xxxxxxxxxxx> 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.

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux