{"id":13397556,"url":"https://github.com/karan/joe","last_synced_at":"2025-05-14T13:07:15.838Z","repository":{"id":25649904,"uuid":"29085322","full_name":"karan/joe","owner":"karan","description":":running: A .gitignore magician in your command line","archived":false,"fork":false,"pushed_at":"2024-05-30T10:08:05.000Z","size":2578,"stargazers_count":2876,"open_issues_count":34,"forks_count":210,"subscribers_count":36,"default_branch":"master","last_synced_at":"2025-05-10T14:55:34.720Z","etag":null,"topics":["git","gitignore","linux","magician","mercurial"],"latest_commit_sha":null,"homepage":"http://karan.github.io/joe/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/karan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-01-11T08:02:17.000Z","updated_at":"2025-05-05T04:31:41.000Z","dependencies_parsed_at":"2024-11-26T07:16:36.205Z","dependency_job_id":null,"html_url":"https://github.com/karan/joe","commit_stats":{"total_commits":88,"total_committers":12,"mean_commits":7.333333333333333,"dds":0.6022727272727273,"last_synced_commit":"f5f03b8bf98c376bd075fee955fccd989ff27632"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karan%2Fjoe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karan%2Fjoe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karan%2Fjoe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karan%2Fjoe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karan","download_url":"https://codeload.github.com/karan/joe/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253433653,"owners_count":21907774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","gitignore","linux","magician","mercurial"],"created_at":"2024-07-30T18:01:30.780Z","updated_at":"2025-05-14T13:07:10.826Z","avatar_url":"https://github.com/karan.png","language":"Go","funding_links":[],"categories":["Go","Clear description","Examples"],"sub_categories":[],"readme":"![](http://i.imgur.com/y8g506n.png?1)\n\n# joe\n\nA `.gitignore` magician in your command line. Joe generates `.gitignore` files from the command line for you.\n\n![](http://i.imgur.com/2tAksHG.gif)\n\n## Features\n\n- Written in uncomplicated Go (Golang)\n- No installation necessary - just use the [binary](https://github.com/karan/joe#installation).\n- Stupidly [easy to use](https://github.com/karan/joe#usage)\n- Supports all Github-supported [`.gitignore` files](https://github.com/karan/joe#list-all-available-files)\n- Works on Mac, Linux and (maybe) Windows\n- Supports other version control systems (`.hgignore`)\n\n## Installation\n\nAfter install, make sure to run `joe u`. This will download all `.gitignore` files in `~/joe-data/` folder.\n\n### Option 1: Binary\n\n`joe` is available for OSX (macOS), Linux and Windows.\n\nDownload the latest binary from the [Releases page](https://github.com/karan/joe/releases). It's the easiest way to get started with `joe`.\n\nMake sure to add the location of the binary to your `$PATH`.\n\n### Option 2: From source\n\n```bash\n$ git clone git@github.com:karan/joe.git\n$ cd joe/\n$ chmod +x tool.sh\n$ ./tool.sh build\n```\n\n## Usage\n\n### Commands:\n\n```\nls | list       list all available files\nu | update      update all available gitignore files\ng | generate    generate gitignore files\n```\n\n### Basic usage\n\n```bash\n$ joe g java    # outputs .gitignore file for java to stdout\n```\n\nTo update your `.gitignore` files at any time, simply run:\n\n```bash\n$ joe u\n```\n\n### Overwrite existing `.gitignore` file\n\n```bash\n$ joe g java \u003e .gitignore    # saves a new .gitignore file for java\n```\n\n### Append to existing `.gitignore` file\n\n```bash\n$ joe g java \u003e\u003e .gitignore    # appends to an existing .gitignore file\n```\n\n### Multiple languages\n\n```bash\n$ joe g java,node,osx \u003e .gitignore    # saves a new .gitignore file for multiple languages\n```\n\n### Create and append to a global .gitignore file\n\nYou 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.\n\n```bash\n$ git config --global core.excludesfile ~/.gitignore # Optional if you have not yet created a global .gitignore\n$ joe g OSX,SublimeText \u003e\u003e ~/.gitignore\n```\n\n### List all available files\n\n```bash\n$ joe ls    # OR `joe list`\n```\n\nOutput:\n\n\u003e 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\n\n### BONUS ROUND: Alternate version control software\n\nJoe isn't **just** a generator for `.gitignore` files. You can use it and its output wherever a SCM is used.\n\n```bash\n$ joe g java \u003e .hgignore\n```\n\n## Contributing\n\n#### Bug Reports \u0026 Feature Requests\n\nPlease use the [issue tracker](https://github.com/karan/joe/issues) to report any bugs or file feature requests.\n\n#### Developing\n\nPRs are welcome. To begin developing, do this:\n\n```bash\n$ git clone git@github.com:karan/joe.git\n$ cd joe/\n$ go run *.go\n```\n\n#### `tool.sh`\n\nThis is a handy script that automates a lot of developing steps.\n\n\n```bash\nUSAGE:\n    $ $tool [-h|--help] COMMAND\n\n  EXAMPLES:\n    $ $tool deps      Install dependencies for joe\n    $ $tool build     Build a binary\n    $ $tool run       Build and run the binary\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaran%2Fjoe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaran%2Fjoe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaran%2Fjoe/lists"}