12 stable releases
1.4.0 | Jul 23, 2024 |
---|---|
1.3.3 | Feb 21, 2024 |
1.2.2 | Oct 21, 2022 |
1.2.0 | Dec 9, 2021 |
0.2.0 | Nov 22, 2018 |
#22 in Development tools
738 downloads per month
54KB
904 lines
git-ignore
Create .gitignores with templates from www.gitignore.io, your own aliases and templates
- Simple:
git ignore node
to print thenode
template. - Offline first: Automatically caches templates for offline support.
- Aliases, templates: Create aliases for commonly combined templates, or make your own custom ones.
- Magic: Automatically generate your
.gitignore
by matching common files against templates.
What and why
Tired of visiting gitignore.io to get templates for your
.gitignore
all the time? I was. So I automated it.
git ignore
allows you to easily and quickly get all the available templates from
gitignore.io, even while offline. You can also define
your own aliases for common combinations of templates, or create your own completely
custom ones for even more power.
Usage
NOTE: Similar to the nix-search
command, this program prints a message
to stderr
about using cached results. This does not interfere with piping
and is purely informational. You can also optionally use --write
to automatically
write the resulting ignores to $CWD/.gitignore
instead of piping.
Updating templates
To download and cache all available templates, use --update
. This can also be
used in combination with any of the other flags/arguments, or be run as a
standalone flag.
$ git ignore -u
Info: Update successful
Automatic matching
By matching against project or language specific files and extensions you can have
your .gitignore
automatically generated for you. Do you have a package.json
and
Cargo.toml
in the current directory? --auto
will automatically add node
and rust
to the template output.
$ git ignore -a
### Created by https://www.gitignore.io
### Rust ###
[...]
# These are backup files generated by rustfmt
**/*.rs.bk
List templates
To list all the available templates:
$ git ignore --list
1c
1c-bitrix
a-frame
actionscript
ada
[...]
zukencr8000
The --list
option is also used to search for templates matching your input. The
matching is done by doing template.contains(phrase)
, so searching for intellij
will list all templates containing that phrase. You can also search for multiple
templates at once:
$ git ignore -l rust intellij
intellij
intellij+all
intellij+iml
rust
Printing templates
Once you've found your templates, you can print them by omitting -l|--list
. Note:
listing and searching for templates is inexact, but printing them requires exact matches.
$ git ignore rust intellij+all
### Created by https://www.gitignore.io
### Rust ###
[...]
# These are backup files generated by rustfmt
**/*.rs.bk
Aliases
Aliases are a way to combine common combinations of templates, if you find
yourself always using node
and visualstudiocode
in your frontend projects
you can create an alias for it for ease of access. Aliases have higher priority
than templates from www.gitignore.io, so an alias named node
will be used
instead of the template. When listing all available templates, aliases are colored
yellow to allow you to distinguish them from regular templates.
Listing
$ git ignore alias list
Available aliases:
node => ["node", "nextjs", "visualstudiocode"]
rust => ["rust", "intellij+all"]
Adding
$ git ignore alias add node node nextjs visualstudiocode
Created alias node for ["node", "nextjs", "visualstudiocode"]
Removing
$ git ignore alias remove node
Removed alias node
Templates
Templates are custom templates created by you for things that do not have an
existing template defined. When listing and searching templates has the highest
priority (templates > alias > normal
). Templates are listed with a blue color
to distinguish them from aliases and normal templates.
Listing
The file name is the name of the file in $HOME/.config/git-ignore/templates
.
$ git ignore template list
Available templates:
docs => "docs.txt"
Adding
All templates are created in $HOME/.config/git-ignore/templates
. So the name
you give for the file is the filename that is used in this directory.
$ git ignore template add docs docs.txt
Created template docs at ~/.config/git-config/templates/docs.txt
Removing
$ git ignore template remove node
Removed template node
Configuration
You can create the configuration file and directories by running git ignore init
. This
will create $HOME/.config/git-ignore/config.toml
and $HOME/.config/git-ignore/templates/
.
The config file is a simple TOML file:
[aliases]
node = [
'node',
'nextjs',
'visualstudiocode',
]
[templates]
docs = 'docs.txt'
Completion
If your method of installation didn't include shell completion, you can manually
source or save them with the git ignore completion <shell>
command.
Help
Finally, help is always available with git ignore help
/git ignore -h
(or --help
if your installation
included man pages).
Installation
Currently, the package is available a couple of places, including Homebrew, AUR and Nix.
- Cargo
cargo install git-ignore-generator
- Nix
nix-env -iA nixpkgs.gitAndTools.git-ignore
- Homebrew
-
brew tap sondr3/homebrew-taps
brew install git-ignore
- Arch (replace
paru
with you favorite AUR tool) paru git-ignore-bin
paru git-ignore
Release pages
You can also download the matching release from the release
tab, extracting the archive and
placing the binary in your $PATH
. Note that for Linux the
unknown-linux-musl.tar.gz
is preferred as it is statically linked and thus
should run on any Linux distribution.
LICENSE
GPLv3+.
Dependencies
~5–17MB
~160K SLoC