hnwの日記

.gitignoreを作ってくれるgiboが便利すぎる

gitignore-boilerplates(長いので以後giboと呼びます)という便利なツールを紹介します。これは.gitignoreのひな形を作ってくれるものです。


もう少し詳しく説明すると、giboは様々なOS・エディタ・言語・フレームワークなどに特化したファイルの情報を利用して、複数環境を考慮した.gitignoreを作ってくれます。


.gitignoreに入れたいファイルは環境ごとに変わってくるわけですが、各人がcommitしたくないファイルの存在に気づくたびにチマチマ.gitignoreに追記していくのって本当に無駄だと思うんですよね。giboはそれを自動化してくれるというわけです。


例えば、WindowsMacOSXの2環境、Emacsvimの2エディタを使う人がいるC言語のプロジェクトであれば、次のようにして.gitignoreを作ることができます。

$ gibo Windows OSX Emacs vim C >> .gitignore


この結果は次のようになります。ほぼ文句のない内容だと思いますが、いかがでしょうか。

### /Users/hnw/.gitignore-boilerplates/Global/Windows.gitignore

# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/


### /Users/hnw/.gitignore-boilerplates/Global/OSX.gitignore

.DS_Store
.AppleDouble
.LSOverride
Icon


# Thumbnails
._*

# Files that might appear on external disk
.Spotlight-V100
.Trashes


### /Users/hnw/.gitignore-boilerplates/Global/Emacs.gitignore

*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
.elc
auto-save-list
tramp
.\#*

# Org-mode
.org-id-locations
*_archive


### /Users/hnw/.gitignore-boilerplates/Global/vim.gitignore

.*.sw[a-z]
*.un~
Session.vim
.netrwhist

### /Users/hnw/.gitignore-boilerplates/C.gitignore

# Object files
*.o

# Libraries
*.lib
*.a

# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib

# Executables
*.exe
*.out
*.app


PHPを例に取れば、EclipseNetBeans、PhpStormといった統合開発環境や、SymfonyCakePHP、ZendFrameworkといったフレームワークにも対応しています。ctagsやetagsの作るタグファイルに対応する「Tags」も忘れがちなので助かりますね。


ちなみに、この.gitignoreの情報はGitHub公式の.gitignoreテンプレート収集リポジトリ https://github.com/github/gitignore から内容を取ってきています。このリポジトリが充実すればgiboが対応する環境も増えるというわけです。


そんなわけで、プロジェクト立ち上げ時はgiboで.gitignoreを作っちゃいましょう。