面倒なgitignoreを自動で生成してくれるWebサービス


https://www.gitignore.io/


プログラムを書く人ならGithubや自分のサーバでgitを使っている人は多いと思います。
git cloneしたディレクトリに.gitignoreを設定して余計なファイルをリポジトリに反映しないようにできますが,そのgitignoreはどういう仕組をしているのでしょうか?

gitignoreとは?

Gitはファイル変更をトラッキングしていますが,.gitignoreに記述されたファイルやディレクトリなどはそのトラッキングの対象から外されます。
[Git] .gitignoreの仕様詳解というQiitaの記事がすごく詳細に書かれていたので,その中から気になったこと,使いそうなことを抜粋して載せて行こうと思います。

主に以下の2つの.gitignoreがあります。

gitignore

gitのプロジェクトでトラッキング無視したいファイル,ディレクトリを記述する。
git管理下のプロジェクトディレクトリ内のどこにでも配置できるが,深い階層の.gitignoreに書かれた指定の方が優先順位が高い。

gitignore_global

毎回 .gitignore に必ず書く「 .DS_Store」であるとか,開発ユーザの環境が必ずしも同じでは無いという理由から,JetBrainsやeclipseが作り出すプロジェクト情報を保存している「.idea/ や .project」などに関して,gitignoreに書くよりもglobalに記述つる法がいい場合がある。
この場合は,「~/.gitignore_global」などに記述するほうが良い。
その際は「~/.gitconfig」の中で,以下のような記述をすると良い。



本来は手打ちで書くけど・・・

もしかしたら秘伝のgitignoreをお持ちかもしれません。それコピペして使っているかもしれません。それでもいいのですが,新しい言語や環境で開発する際にはgitignore.ioを使うことでらくしてgitignoreを作ることができると思います。



gitignore.ioの使い方

1. gitに登録したくない関連ファイル名を検索する(例ではmacOS)



2. Createボタンを押す。テキストのページなのでコピーして適当なディレクトリの.gitignoreにペーストする



以上です。
超簡単!!!

修正するときは

「/」のある無しでサブディレクトリを見る見ないであるとか,ワイルドカードなど正規表現の記述方法によってより詳細にトラッキング内容を制御することができるので,少々修正が必要な場合があるだろう。
ちなみにエスケープ文字は,「バックスラッシュ記号"\"」である。
サンプル付きでわかりやすかった記述例は外部サイトの.gitignore の書き方。ファイル/ディレクトリの除外と反映方法が良かった。

おまけ

gitconfigにはaliasが記述できます。私はCommit logを見やすくするためのコマンドを記述しています。


まとめ

友人に教えてもらってちょっと感動したので紹介させてもらいました。
このgitignoreを開発しているJoe Blau氏(Github joeblau)に感謝を込めて。

参考資料