Ignoring Files with .gitignore
Git’s ability to track files is powerful, but sometimes you need to exclude certain files or directories from version control. This is typically done using a .gitignore
file.
Why Ignore Files?
- Sensitive Information: Avoid accidentally sharing passwords, API keys, authentication tokens, or other sensitive data in your repository.
- System-Specific Files: Operating systems (e.g., macOS’s
.DS_Store
files) and applications (e.g., IDE configuration files) often create files that are not relevant to the project itself. - Generated Files: Files automatically generated by build processes or other tools (e.g.,
node_modules
in Node.js projects) should typically be ignored. These can be recreated easily. - Local Notes: Keep personal notes or to-do lists separate from your main project.
Creating a .gitignore File
- Create a file named
.gitignore
in the root directory of your project. - Add patterns to specify which files or directories to ignore.
Patterns in .gitignore:
*.txt
: Ignores all files ending with.txt
./folder/
: Ignores the entirefolder
directory (note the trailing slash).folder/*
: Ignores all files within thefolder
directory.!file.txt
: Excludesfile.txt
from being ignored (used to override a more general rule).
Example .gitignore Content:
.DS_Store
/node_modules/
/vscode/
/notes/
authentication.js
Adding and Committing .gitignore:
After creating and editing .gitignore
, add it to your repository and commit the changes:
Global .gitignore
For consistent ignoring across multiple projects, you can create a global .gitignore
file. Git’s configuration allows you to specify a path to a global .gitignore
file:
(This uses ~/.gitignore_global
as the path for the global file; you can choose a different location.)
Cleaning the Git Cache
If you add a pattern to .gitignore
after already tracking files matching the pattern, you might need to clear the Git cache:
It’s best practice to create a .gitignore
file early in your project’s lifecycle to prevent accidental tracking of unwanted files.