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:kendfss/joe.git
cd joe
go install
joe u
This is the original installer from Karan's repo. I've updated it, but it's obsolete now that go uses Modules for package management.
git clone git@github.com:kendfss/joe.git
cd joe/
chmod +x tool.sh
./tool.sh build
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:
actionscript, ada, agda, android, anjuta, appceleratortitanium, archives, archlinuxpackages, autotools, bricxcc, c, c++, cakephp, cfwheels, chefcookbook, clojure, cloud9, cmake, codeigniter, codekit, commonlisp, composer, concrete5, coq, craftcms, cvs, dart, darteditor, delphi, dm, dreamweaver, drupal, eagle, eclipse, eiffelstudio, elisp, elixir, emacs, ensime, episerver, erlang, espresso, expressionengine, extjs, fancy, finale, flexbuilder, forcedotcom, fortran, fuelphp, gcov, gitbook, go, gradle, grails, gwt, haskell, idris, igorpro, ipythonnotebook, java, jboss, jdeveloper, jekyll, jetbrains, joomla, jython, kate, kdevelop4, kohana, labview, laravel, lazarus, leiningen, lemonstand, libreoffice, lilypond, linux, lithium, lua, lyx, magento, matlab, maven, mercurial, mercury, metaprogrammingsystem, meteor, microsoftoffice, modelsim, momentics, monodevelop, nanoc, netbeans, nim, ninja, node, notepadpp, objective-c, ocaml, opa, opencart, oracleforms, osx, packer, perl, phalcon, playframework, plone, prestashop, processing, python, qooxdoo, qt, r, rails, redcar, redis, rhodesrhomobile, ros, ruby, rust, sass, sbt, scala, scons, scrivener, sdcc, seamgen, sketchup, slickedit, stella, sublimetext, sugarcrm, svn, swift, symfony, symphonycms, tags, tex, textmate, textpattern, tortoisegit, turbogears2, typo3, umbraco, unity, vagrant, vim, virtualenv, visualstudio, vvvv, waf, webmethods, windows, wordpress, xcode, 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:karan/joe.git
cd joe/
go run *.go
This is a handy script that automates a lot of developing steps.
USAGE:
$ $tool [-h|--help] COMMAND
EXAMPLES:
$ $tool deps Install dependencies for joe
$ $tool build Build a binary
$ $tool run Build and run the binary
Avoid writing duplicates to output
add an o
option for writing output directly file
- new structure
- reading
- writing
- updating