Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Failed to load latest commit information.

The largest collection of useful .gitignore templates

template count build status license


This project is also the canonical repository where template list comes from. Here are the reasons behind the need for this repository:


This testing process ensures that template list contains all of the changes from GitHub's template list. The CI system will automatically listen to commits from GitHub and merge any changes.

  1. Pre-requisites
pip install moban
  1. Sync repository with GitHub and copy templates
  1. Make sure you don't commit files with blank lines or missing EOF line


There are four file types that recognizes

  1. Templates

    A .gitignore file is the foundation of all templates. Each .gitignore file contains gitignore information related to the title of the file. For example, Go.gitignore contains a gitignore template that is used when creating a project using the Go programming language.

  2. Patch

    A .patch is a file to extend the functionality of a template. The source for some of the template files on toptal/gitignore come from github/gitignore. GitHub maintains strict contributing guidelines and the .patch file allows anyone to extend any of the templates to add extra template rules

  3. Stack

    A .stack is a file that allows for the creation of code stacks (LAMP, MEAN, React Native). In today's development environment a .gitignore file is usually comprised of multiple technologies. A stack creates an elegant way to keep the stack up to date with child dependencies.

  4. Order

    The order file simply ensure that if certain templates are requested, the order in which the templates are loaded is maintained.