Git
gitignore
gibo

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

More than 1 year has passed since last update.

いままで.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入れとけ。