gitignore.plugin.zsh
April 9, 2026 ยท View on GitHub
ZSH plugin for creating .gitignore files.
Demo

Usage
# Write templates to the standard output
gitignore TEMPLATE
# Append templates to the local .gitignore file
gitignore-append TEMPLATE
# Open .gitignore file in editor ($EDITOR)
gitignore-edit
Example:
gitignore vim eclipse symfony
Aliases
For convenience, the following aliases are provided:
gi: Alias forgitignoregia: Alias forgitignore-appendgie: Alias forgitignore-edit
Installation
Zinit
zinit light voronkovich/gitignore.plugin.zsh
Zplug
zplug "voronkovich/gitignore.plugin.zsh"
Oh My Zsh
git clone --recurse-submodules https://github.com/voronkovich/gitignore.plugin.zsh ~/.oh-my-zsh/custom/plugins/gitignore
Edit .zshrc to enable the plugin:
plugins=(... gitignore)
Manual
Clone this repo:
git clone --recurse-submodules https://github.com/voronkovich/gitignore.plugin.zsh path/to/repo
And add this into your .zshrc:
source path/to/repo/gitignore.plugin.zsh
Advanced Usage
Global gitignore
The plugin also supports global gitignore files. To use the global gitignore file instead of the local one, add the --global flag to any command:
# Show current global gitignore file's content
gitignore -g
# Append templates to the global gitignore file
gitignore-append -g TEMPLATE
# Open global gitignore file in editor ($EDITOR)
gitignore-edit -g
Custom templates
If you want to override an existing template or add your own custom one, you can use an environment variable ZSH_PLUGIN_GITIGNORE_TEMPLATE_PATHS (it behaves like the $PATH variable):
export ZSH_PLUGIN_GITIGNORE_TEMPLATE_PATHS="${HOME}/.gitignore_templates:${ZSH_PLUGIN_GITIGNORE_TEMPLATE_PATHS}:/etc/global_gitignore"
Updating templates
Every day a GitHub Actions scheduled workflow runs a job that updates a submodule with templates and commits the changes. So, templates are always up to date. You should just use zinit update.
License
Copyright (c) Voronkovich Oleg. Distributed under the MIT.