気付いたら.gitignoreはgiboで自動生成する時代になっていた

  • 1479
    いいね
  • 0
    コメント

いままで.gitignoreはちまちま手で書いてたけど、giboという便利ツールを発見したのでメモ。

giboは、様々な言語、フレームワーク、ツールに対応していて、大抵のメジャーなものについては、簡単に.gitignoreを生成できる。

インストール

Macの場合は、Homebrewで一発でインストールできる。

$ brew install gibo

これで使えるようになった。

$ gibo --version
gibo 1.0.4 by Simon Whitaker <sw@netcetera.org>
https://github.com/simonwhitaker/gibo

使い方

.gitignoreの生成

例えば、Javaのプロジェクトの場合はこんな感じで作成できる。

$ gibo java
### https://raw.github.com/github/gitignore/8c9b77cb5c85f6464c0bb31abdf4cfcfdf6833bb/java.gitignore

*.class

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

見ての通り、結果は標準出力されるので、通常は.gitignoreにリダイレクトして使うことになるだろう。

$ gibo java >> .gitignore

giboで自動生成可能なモノ一覧

何がgiboで自動生成できるか知りたい時は、-l オプションを使おう。

少し長いが、本記事執筆時の一覧は下記の通り。メジャーなものがほとんど網羅されていると思う。

$ gibo -l
=== Languages ===

Actionscript        EPiServer       Lua         Scala
Ada         Erlang          Magento         Scheme
Agda            ExpressionEngine    Maven           SCons
Android         ExtJs           Mercury         Scrivener
AppceleratorTitanium    Fancy           MetaProgrammingSystem   Sdcc
AppEngine       Finale          Nanoc           SeamGen
ArchLinuxPackages   ForceDotCom     Nim         SketchUp
Autotools       Fortran         Node            Smalltalk
C++         FuelPHP         Objective-C     Stella
C           Gcov            OCaml           SugarCRM
CakePHP         GitBook         Opa         Swift
CFWheels        Go          OpenCart        Symfony
ChefCookbook        Gradle          OracleForms     SymphonyCMS
Clojure         Grails          Packer          Terraform
CMake           GWT         Perl            TeX
CodeIgniter     Haskell         Phalcon         Textpattern
CommonLisp      Idris           PlayFramework       TurboGears2
Composer        IGORPro         Plone           Typo3
Concrete5       Java            Prestashop      Umbraco
Coq         Jboss           Processing      Unity
CraftCMS        Jekyll          PureScript      UnrealEngine
CUDA            Joomla          Python          VisualStudio
D           Julia           Qooxdoo         VVVV
Dart            KiCad           Qt          Waf
Delphi          Kohana          R           WordPress
DM          LabVIEW         Rails           Xojo
Drupal          Laravel         RhodesRhomobile     Yeoman
Eagle           Leiningen       ROS         Yii
Elisp           LemonStand      Ruby            ZendFramework
Elixir          Lilypond        Rust            Zephir
Elm         Lithium         Sass

=== Global ===

Anjuta          Ensime          Mercurial       SVN
Ansible         Espresso        MicrosoftOffice     SynopsysVCS
Archives        FlexBuilder     ModelSim        Tags
Bazaar          GPG         Momentics       TextMate
BricxCC         JDeveloper      MonoDevelop     TortoiseGit
Calabash        JEnv            NetBeans        Vagrant
Cloud9          JetBrains       Ninja           Vim
CodeKit         Kate            NotepadPP       VirtualEnv
CVS         KDevelop4       Otto            VisualStudioCode
DartEditor      Lazarus         Redcar          WebMethods
Dreamweaver     LibreOffice     Redis           Windows
Dropbox         Linux           SBT         Xcode
Eclipse         LyX         SlickEdit       XilinxISE
EiffelStudio        macOS           Stata
Emacs           Matlab          SublimeText

.gitignoreのテンプレートファイル

.gitignore-boilerplates

実は、giboをインストールすると、自動的にホームディレクトリ配下に、.gitignore-boilerplatesディレクトリというのが作成される。

ここには、.gitignoreのテンプレートファイルが格納され、gibo実行時にはココが参照されるようになっている。

で、このディレクトリの正体だが、GitHubが公開している.gitignoreテンプレート集が元ネタである。

テンプレートのアップデート

giboでは、テンプレートのアップデートは自動では行われないので、必要な場合は手動で行う必要がある。

ただ、アップデートは簡単でこれだけでよい。

$ gibo -u

gitignore.ioとの比較

類似ソリューションとして、gitignore.ioというWebサービスがある。

APIも公開されており、エイリアスを定義してあげれば、gibo同様にコマンドラインだけで完結させることもできる。

が、毎回通信が発生するので、ローカルで完結するgiboと比較すると、通信分の時間が余計に必要になる。

まとめ

とりあえず、gibo入れとけ。