A .gitignore
magician in your command line. Joe generates .gitignore
files from the command line for you.
- Written in uncomplicated Go (Golang)
- No installation necessary - just use the binary.
- Stupidly easy to use
- Supports all Github-supported
.gitignore
files - Works on Mac, Linux and (maybe) Windows
- Supports other version control systems (
.hgignore
)
After install, make sure to run joe u
. This will download all .gitignore
files in ~/.joe-data/
folder.
joe
is available for OSX (macOS), Linux and Windows.
Download the latest binary from the Releases page. It's the easiest way to get started with joe
.
Make sure to add the location of the binary to your $PATH
.
git clone git@github.com:omata/joe.git
cd joe
go install
joe u
It uses the tool TaskFile, so you must to install it before take this aproach.
git clone git@github.com:omata/joe.git
cd joe/
task build:[os]:[arch]
ls | list list all available files
u | update update all available gitignore files
g | generate generate gitignore files
s | search search for gitignore files with matching names
joe g java # outputs .gitignore file for java to stdout
To update your .gitignore
files at any time, simply run:
joe u
joe g java > .gitignore # saves a new .gitignore file for java
joe g java >> .gitignore # appends to an existing .gitignore file
joe g java,node,osx > .gitignore # saves a new .gitignore file for multiple languages
You can also use joe to append to a global .gitignore. These can be helpful when you want to ignore files generated by an IDE, OS, or otherwise.
git config --global core.excludesfile ~/.gitignore # Optional if you have not yet created a global .gitignore
joe g OSX,SublimeText >> ~/.gitignore
joe ls # OR `joe list`
joe s py # or `joe search`
# prints all languages whose names contain "py"
joe s "^py"
# prints all languages whose names start with "py"
joe s py$
# prints all languages whose names end with "py"
Output:
250 supported .gitignore files:
actionscript
ada
agda
al
altiumdesigner
android
anjuta
ansible
appceleratortitanium
appengine
archives
archlinuxpackages
atmelstudio
autoit
autotools
b4x
backup
bazaar
bazel
beef
bitrix
bricxcc
c
c++
cakephp
calabash
cdk
cfwheels
chefcookbook
clojure
cloud9
cmake
codeigniter
codekit
codesniffer
commonlisp
composer
concrete5
coq
cordova
core
craftcms
cuda
cvs
d
dart
darteditor
delphi
diff
dm
dreamweaver
dropbox
drupal
drupal7
eagle
eclipse
eiffelstudio
elisp
elixir
elm
emacs
ensime
episerver
erlang
esp-idf
espresso
exercism
expressionengine
extjs
fancy
finale
flaxengine
flexbuilder
forcedotcom
fortran
fuelphp
gcov
gitbook
gnomeshellextension
go
go.allowlist
godot
gpg
gradle
grails
gretl
gwt
haskell
hugo
iar_ewarm
idris
igorpro
images
inforcms
java
jboss
jboss4
jboss6
jdeveloper
jekyll
jenkins_home
jenv
jetbrains
jigsaw
joomla
julia
jupyternotebooks
kate
kdevelop4
kentico
kicad
kohana
kotlin
labview
laravel
lazarus
leiningen
lemonstand
lensstudio
libreoffice
lilypond
linux
lithium
logtalk
lua
lyx
macos
magento
magento1
magento2
matlab
maven
mercurial
mercury
metals
metaprogrammingsystem
meteor
microsoftoffice
modelsim
momentics
monodevelop
nanoc
nasaspecsintact
netbeans
nikola
nim
ninja
nix
node
notepadpp
nwjs
objective-c
ocaml
octave
opa
opencart
openssl
oracleforms
otto
packer
patch
perl
phalcon
phoenix
pimcore
playframework
plone
prestashop
processing
psoccreator
puppet
purescript
putty
python
qooxdoo
qt
r
racket
rails
raku
red
redcar
redis
rhodesrhomobile
ros
ros2
ruby
rust
sam
sass
sbt
scala
scheme
scons
scrivener
sdcc
seamgen
sketchup
slickedit
smalltalk
snap
spfx
splunk
stata
stella
strapi
sublimetext
sugarcrm
svn
swift
symfony
symphonycms
syncthing
synopsysvcs
tags
terraform
tex
textmate
textpattern
thinkphp
toit
tortoisegit
turbogears2
twincat3
typo3
umbraco
unity
unrealengine
uvision
v
vagrant
vim
virtualenv
virtuoso
visualstudio
visualstudiocode
vue
vvvv
waf
webmethods
windows
wordpress
xcode
xilinx
xilinxise
xojo
yeoman
yii
zendframework
zephir
Joe isn't just a generator for .gitignore
files. You can use it and its output wherever a SCM is used.
joe g java > .hgignore
Please use the issue tracker to report any bugs or file feature requests.
PRs are welcome. To begin developing, do this:
git clone git@github.com:omata/joe.git
cd joe/
go run *.go
Avoid writing duplicates to output
add an o
option for writing output directly file
- new structure
- reading
- writing
- updating