ブログに載せるサンプルコードを管理したり,仕事でプロトタイプを実装することが多かったり,とにかく Git リポジトリを新しく作る機会が多くある.そのときに毎回似たような .gitignore
を作ることになり,面倒だった.共通的な設定はホームディレクトリの ~/.gitignore
を使っているけど,同僚とコードを共有することもあり,やはりリポジトリ単位に .gitignore
を作成したかった.この運用を軽減するために使っているツールとして,今回は .gitignore
のテンプレート(ボイラープレート)を簡単に作成できる「gibo」を紹介する.
gibo とは?
「gibo (short for .gitignore boilerplates)」 を使うと,例えば Python や Ruby など,プログラミング言語ごとに用意された .gitignore
のテンプレートを簡単に作成できる.正確に表現すると,GitHub のリポジトリ github/gitignore
に公開されているテンプレートを gibo
コマンドを使って取得できる.よって,ラッパーコマンドのような立ち位置と言える.非常に便利でよく使っている.
gibo をインストールする
Mac なら brew
コマンドを使えば,簡単にインストールできる.今回は最新版 v2.2.4
を前提にする.
$ brew install gibo $ gibo version gibo 2.2.4 by Simon Whitaker <sw@netcetera.org> https://github.com/simonwhitaker/gibo
もし,ローカル環境にインストールしたくない場合は,Docker を使う案もある.
$ docker run --rm simonwhitaker/gibo version gibo 2.2.4 by Simon Whitaker <sw@netcetera.org> https://github.com/simonwhitaker/gibo
gibo を使う
基本的には gibo dump
コマンドを使って,標準出力をリダイレクトする.以下のように gibo dump Python
とすれば,Python 用の .gitignore
を作成できるし,gibo dump Python macOS
のようにスペース区切りで複数指定すれば,Python と Mac 用の .gitignore
を作成できる.ほら .DS_Store
を間違ってコミットしちゃった経験は誰にでもあるよね?笑
$ gibo dump Python >> .gitignore $ gibo dump Python macOS >> .gitignore
Docker を使う場合は,以下のように docker run
をすれば OK!
$ docker run --rm simonwhitaker/gibo dump Python >> .gitignore $ docker run --rm simonwhitaker/gibo dump Python macOS >> .gitignore
タブ補完をする
gibo は「タブ補完」もサポートしている.README.md
に bash
/ zsh
/ fish
の設定が載っているけど,僕は oh-my-zsh を使っているため,Wiki を参考に oh-my-zsh の設定を紹介する.以下のように plugins/gibo
ディレクトリを作成して,GitHub に公開されている gibo-completion.zsh
にシンボリックリンクを貼るだけ!簡単!gibo-completion.zsh
は任意のディレクトリに置いておけばよくて,僕は dotfiles
の中に置いてある.設定が終わったら,zsh をリロードしておくのを忘れずに!
$ mkdir -p ${ZSH}/custom/plugins/gibo/ $ ln -s ~/dotfiles/gibo-completion.zsh ${ZSH}/custom/plugins/gibo/gibo.plugin.zsh
以下のように gibo [tab]
と入力すれば,コマンドが表示されるし,gibo dump P [tab]
と入力すれば,P
にマッチするテンプレートを補完できる.便利だし,むしろ使えないと困る!
$ gibo [tab] dump -- Dump one or more boilerplates help -- Display this help text list -- List available boilerplates root -- Show the directory where gibo stores its boilerplates search -- Search for boilerplates update -- Update list of available boilerplates version -- Display current script version $ gibo dump P [tab] PSoCCreator Perl Pimcore Prestashop Puppet Packer Phalcon PlayFramework Processing PureScript Patch Phoenix Plone PuTTY Python
他にもコマンドはある
gibo dump
コマンド以外だと,例えば gibo list
コマンドを使うと,サポートしているテンプレートの一覧を確認できる.とは言え,さっき紹介した「タブ補完」を設定すれば gibo dump [tab]
と入力すれば良く,個人的にはあまり使っていなかったりする.
$ gibo list Actionscript Dart NetBeans Node Ada Delphi Ninja Objective-C Agda DM NotepadPP OCaml (省略)
gibo root
コマンドを使うと,GitHub のリポジトリ github/gitignore
を clone
したディレクトリを確認できる.ようするに,テンプレートはローカルにコピーされている.すると,今度はテンプレート自体の更新をどのようにするのか?という点が気になると思う.gibo update
コマンドを使えば,簡単に最新に追随できる.
$ gibo root /Users/kakakakakku/.gitignore-boilerplates $ ls -1 /Users/kakakakakku/.gitignore-boilerplates | wc -l 132 $ gibo update From github.com:github/gitignore * branch master -> FETCH_HEAD Already up to date.
まとめ
もし GitHub のリポジトリ github/gitignore
からコピーして .gitignore
を作成している場合は,gibo を使ってシュッと .gitignore
を作成すると便利!使うときは「タブ補完」も忘れずに設定しておくと良いぞ!