How to Make .gitignore Ignore Everything Except a Few Files?

Sometimes you might have files in your Git project that you don’t want tracked by version control. Here’s how to use a `.gitignore` file to tell Git to ignore everything except a few specific files you want to keep track of.

Table of Content

  • Creating the `.gitignore` File
  • Adding File Exclusion Rules
  • Saving and Checking
  • Keep in Mind

Creating the `.gitignore` File

In your Git repository’s root directory, create a new file named `.gitignore` (the leading dot is important). Since it’s hidden by default, you might need to adjust your file explorer settings to see it.

Adding File Exclusion Rules

  • Open the `.gitignore` file in a text editor.
  • Add lines with patterns specifying the files you want to exclude. Here are some common patterns:
  • `*`: This wildcard excludes all files in the current directory.
  • `filename`: Excludes a specific file named “filename“.
  • `folder/*`: Excludes all files inside a specific folder named “folder“.
  • `.gitignore`: Excludes the `.gitignore` file itself (handy to prevent accidental tracking).
  • Example :

Let’s say you only want to track “README.md” and “index.html” in your project:

# Ignore all files except "README.md" and "index.html"
*
!README.md
!index.html

# Ignore all files except “README.md” and “index.html”

Saving and Checking

  • Save the `.gitignore` file.
  • Run `git status` to see which files are now untracked (ignored) by Git.
git status

use git status to check current status

Keep in Mind

  • Existing tracked files won’t be automatically removed. You’ll need separate commands for that (not covered here).
  • The `.gitignore` file applies to the directory it’s placed in and its subdirectories. You can create additional `.gitignore` files in subdirectories for more specific control.

By using `.gitignore` effectively, you can keep your Git repository focused on the essential code and content, making it cleaner and easier to manage. Remember, a well-defined `.gitignore` file is a great way to keep your Git project organized!