DEV Community

Cover image for Generating a gitignore file
Jonathan Bowman
Jonathan Bowman

Posted on • Edited on • Originally published at bowmanjd.com

1 1

Generating a gitignore file

Here is a simple but usable .gitignore file:

# Python
*.py[cod]
__pycache__
venv/
htmlcov/
.tox/
.coverage
.coverage.*
.mypy_cache/

# Node/npm
node_modules

# Editors
*.sublime-workspace
*.sublime-project # unless most use Sublime
.vscode
*.code-workspace
.idea
*.swp
*~

# Misc
.DS_Store
Enter fullscreen mode Exit fullscreen mode

This is simply a list of files, or rather a list of file patterns that should be excluded from version control. The file is named .gitignore and I usually place just one in the root of my project directory.

The patterns themselves can get rather complex. One can learn from the docs, of course. It is worth a look, at the least.

Thankfully, however, a few resources exist to more easily guide the generation of .gitignore files.

GitHub starter examples

GitHub provides numerous examples to get you started, available in the github/gitignore repo. You may select your language and build from there.

gitignore.io

The online generator gitignore.io provides a place to select the desired languages and editors, and have a custom .gitignore built for you.

If you know your team well, you can select the editors you know they use, along with the language/platform the project uses. This offers peace of mind, knowing you are not hindering your fellow devs, or spawning needless Emacs vs Vim wars.

gig, a cli for gitignore.io

To install gig, first install go (your package manager may call it golang), then install gig:

go get github.com/shihanng/gig
Enter fullscreen mode Exit fullscreen mode

Once installed, gig list will show you all templates available. gig search allows you to search if fzf is installed.

Then, pass in a series of templates to use, and your .gitignore will be printed:

gig gen python vim
Enter fullscreen mode Exit fullscreen mode

Customize and trim the .gitignore

Once you have a .gitignore, take a look if there are lines that are irrelevant, given the tools you use. For instance, if you are using Python but not Mypy, you can eliminate the .mypy_cache/ line. If you are using Node but not Grunt, you can eliminate the .grunt line.

While removing extraneous lines is not truly necessary, a simpler file is usually an easier file to maintain.

Once you have a .gitignore you like, you will very likely simply copy it into new projects. But it is nice to know there are tools available when you need them.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more