Git can be configured to ignore some files in your computer or repository you don’t want to track. These files can include log files,
.env files that contain sensitive information, files generated automatically by your text editor or build system, or any locally generated files that your team members will not need.
gitignore files to tell git what files to ignore. Once a file is already tracked, adding it to
gitignore won’t un-track it. Each line in the
gitignore file represents a file name pattern that git will try to match. Here is an example
$ cat .gitignore *.[oa] *~
The first line tells git to ignore all files ending in
.a. The second line tells git to ignore all files that end with a tilde(
~), which many editors use to mark temp files. Setting up a gitignore file early in your project is a good practice, so you don’t accidentally add files you don’t really want to your git repository.
Git usually checks for these patterns in multiple locations and where you place the patterns depends on how you want to use the patterns.
Ignoring files in a single repository
You can tell git to ignore files in a repository or project by adding a
.gitignore file in the project’s root. This file tells git what files and folders to ignore when you make a commit. To share this file with others, commit it to git. If you want to ignore a file that is already tracked or checked in, you must untrack the file first before ignoring it:
$ git rm --cached FILENAME
Ignoring files in all repositories
You can create a global
gitignore file to define a list of rules or files to ignore for every project on your computer. To do this, you create a
gitignore file and configure git to use it globally. For example, you could create
.gitignore_global in your home directory and then do this:
$ git config --global core.excludesfile ~/.gitignore_global
Excluding files without creating a .gitignore file
If you don’t want to share a
.gitignore file or want to add additional rules that are specific to your workflow, you can create a set of rules to ignore that don’t get committed to the repository by editing the file in
.git/info/exlude within the root of your git project and adding the patterns there.
Gitignore pattern examples
|This or a blank line is treated as a comment or space for readability.|
|Ignore patterns that start with a hash|
|Start a pattern with a forward slash to avoid recursivity. End patterns with|
a slash to specify a directory.
|Ignore the |
|Ignore all files in any directory called |
|Negates the pattern that comes after it|
|Matches any one character except for |
|Range notation; matches any digit between |
|Range notation; matches any character between |
|Match any nested directories. e.g |
|Ignore( or don’t track) any |
|Do not ignore the |
|This will ignore |
This post was a quick summary of how to ignore files in git using
.gitignore files and some of the patterns you can use in them. GitHub maintains a list of
.gitignore templates you can use in your projects, so you don’t have to come up with a list of rules every time you create a project.