gitignoreを生成するgiboとgiを比較
はじめに
やみつきーさんのブログ
.gitignore作るなら、giboを使おう - 病みつきエンジニアブログ
を見て、初めてgibo
の存在を知りました。
gitignore.io - Create useful .gitignore files for your project
普段自分はgitignore.ioのgi
を使っているのですが、
この2つがかなり似ているように感じたので比較してみました。
どちらもターミナルから操作可能です。
gibo
はやみつきーさんのブログにある通り、
brewがあればbrew install gibo
で使えるようになります。
gi
はhttp://www.gitignore.io/cliを参考にインストールすると使えるようになります。
オプションをコンマ区切りでとかスペース区切りでとかいうような
細かい違いはありますが、言語やフレームワークの名前を
入力するとそれらに合わせた.gitignoreファイルを
一発で生成することが出来る便利なコマンドです。
比較
gi list
とgibo -l
でそれぞれのコマンドで利用出来るものが
出てきますが、出力される項目を整理してdiffを取ると、
- appcode
- basercms
- bower
- codekit
- django
- dotsettings
- elasticbeanstalk
- elixir
- freepascal
- intellij
- jabref
- joe
- justcode
- komodoedit
- laravel
- latex
- openfoam
- ph7cms
- phpstorm
- puppet-librarian
- pycharm
- rubymine
- senchatouch
- silverstripe
- tarmainstallmate
- tower
- wakanda
- webstorm
- xamarinstudio
これらがgi
にのみ定義されています。結構多いですね。
でも、JetBrainsのIDE(AppCodeやIntelliJ,PHPStormなど)は、
gibo
ではgibo JetBrains
にまとまっているようです。
なので、純粋にgi
でしか利用出来ないものは少ないかと思います。
ちなみに、gi intellij
とgi appcode
で生成される.gitignoreは同じです。
また、gibo
のみ利用可能でgi
で使えないものはありませんでした。
生成される.gitignore
ほんの少しですが違いがありました。
gi
とgibo
が吐き出した.gitignoreの全diffをGistに上げておきます。
https://gist.github.com/nokok/10755225
diffは
diff -y --ignore-blank-lines --ignore-matching-lines="^\#"\
--suppress-common-lines gi_all gibo_all
で取りました。ゴミが残っています。ごめんなさい。
diffを見てみると、項目が少し追加されてたりディレクトリに/が付いてたりしているみたいです。
他はに長いので割愛します(おい
ネットワーク接続
あと、gi
とgibo
にはもう一つ大きな違いがあり、
gibo
は.gitignore生成にネットワークを必要としませんが、
gi
はネットワーク接続が必須のようです。
which gi
をすると
gi () {
curl http://www.gitignore.io/api/$@
}
が返ってきます。gi
は渡されたオプションをそっくりそのままサーバーのAPIに投げて、
その結果を表示しているようでした。
知らなかった...
つまり、
ネットワークに繋がっていない状態でgi
を使用すると,,,
エラーで使用できません
一方gibo
の方はと言うと、~/.gitignore-boilerplates
に
.gitignoreの元ファイルのようなものがあり、そこから生成しているようです。
なのでgibo
はgibo --upgrade
などでたまに更新してやる必要がありますが、
ネットワークアクセスが無いところでも使えます
更に、ネットワークアクセスを必要としない分軽快に動いてる感じがします。
まとめ
眠い
giboの方が良さそう