# joe **Repository Path**: vcs-all-in-one/joe ## Basic Information - **Project Name**: joe - **Description**: 🏃 A .gitignore magician in your command line - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2020-06-15 - **Last Updated**: 2025-05-03 ## Categories & Tags **Categories**: vcs **Tags**: None ## README ![](http://i.imgur.com/y8g506n.png?1) # joe A `.gitignore` magician in your command line. Joe generates `.gitignore` files from the command line for you. ![](http://i.imgur.com/2tAksHG.gif) ## Features - Written in uncomplicated Go (Golang) - No installation necessary - just use the [binary](https://github.com/karan/joe#installation). - Stupidly [easy to use](https://github.com/karan/joe#usage) - Supports all Github-supported [`.gitignore` files](https://github.com/karan/joe#list-all-available-files) - Works on Mac, Linux and (maybe) Windows - Supports other version control systems (`.hgignore`) ## Installation After install, make sure to run `joe u`. This will download all `.gitignore` files in `~/joe-data/` folder. ### Option 1: Binary `joe` is available for OSX (macOS), Linux and Windows. Download the latest binary from the [Releases page](https://github.com/karan/joe/releases). It's the easiest way to get started with `joe`. Make sure to add the location of the binary to your `$PATH`. ### Option 2: From source ```bash $ git clone git@github.com:karan/joe.git $ cd joe/ $ chmod +x tool.sh $ ./tool.sh build ``` ## Usage ### Commands: ``` ls | list list all available files u | update update all available gitignore files g | generate generate gitignore files ``` ### Basic usage ```bash $ joe g java # outputs .gitignore file for java to stdout ``` To update your `.gitignore` files at any time, simply run: ```bash $ joe u ``` ### Overwrite existing `.gitignore` file ```bash $ joe g java > .gitignore # saves a new .gitignore file for java ``` ### Append to existing `.gitignore` file ```bash $ joe g java >> .gitignore # appends to an existing .gitignore file ``` ### Multiple languages ```bash $ joe g java,node,osx > .gitignore # saves a new .gitignore file for multiple languages ``` ### Create and append to a global .gitignore file 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. ```bash $ git config --global core.excludesfile ~/.gitignore # Optional if you have not yet created a global .gitignore $ joe g OSX,SublimeText >> ~/.gitignore ``` ### List all available files ```bash $ joe ls # OR `joe list` ``` 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 ### BONUS ROUND: Alternate version control software Joe isn't **just** a generator for `.gitignore` files. You can use it and its output wherever a SCM is used. ```bash $ joe g java > .hgignore ``` ## Contributing #### Bug Reports & Feature Requests Please use the [issue tracker](https://github.com/karan/joe/issues) to report any bugs or file feature requests. #### Developing PRs are welcome. To begin developing, do this: ```bash $ git clone git@github.com:karan/joe.git $ cd joe/ $ go run *.go ``` #### `tool.sh` This is a handy script that automates a lot of developing steps. ```bash USAGE: $ $tool [-h|--help] COMMAND EXAMPLES: $ $tool deps Install dependencies for joe $ $tool build Build a binary $ $tool run Build and run the binary ```