エンジニアはこわくない

好きなように書く

gitignore_globalとgitignoreを使い分ける


スポンサーリンク

f:id:tsujitaku50:20170107105906p:plain

こんにちは、つじたく(@Tsuji_Taku50)です。

おそらくgithubを使っている人なら皆が知ってるgitignoreファイル。

ソースコードを管理するときにgit管理対象外にするためのファイルですが

このファイルが2種類あることを知ったのでそれについて書きます。

gitignore_globalファイル

自分一人の環境に存在するようなファイルをgit管理対象外にしたいときに 、リポジトリ内のある全員共通のgitignoreに書くのはちょっと気持ち悪い。。

そこでgitignore_globalの登場です。

gitignore_globalは自分一人だけ特定のファイルをgit管理対象外にできるファイルです。 (つまり自分のローカル環境全体に適用されるgitignoreファイルです)

デフォルトでは下記のディレクトリに存在しているようです。

# locateコマンドでgitignore_globalファイルを検索する
% locate gitignore_global
~/.gitignore_global

どういった内容が書かれているか確認しました。

% cat ~/.gitignore_global
*~
.DS_Store
tags

私のPCはMacなのでデフォルトで.DS_Storeなどのファイルがignoreされるようになっているようです。

どこでgitignore_globalが適用されるような設定が書かれているのか

gitignore_globalファイルが自分のローカル環境の特定ファイルだけをgit管理対象外にしてくれるのは分かりました。

次に疑問に思ったのが、「どこでgitignore_globalが適用されるような設定が書かれているのか」ということでした。

こちらも調べたらすんなり分かりました。

ホームディレクトリ下にgitconfigファイルがあり、そのファイルに記載されているようです。

# locateコマンドでgitconfigファイル検索
% locate gitconfig                                                                                                                                     
~/.gitconfig
# catコマンドでファイル閲覧
% cat ~/.gitconfig
・・・(省略)
[core]
   excludesfile = /Users/your_user_name/.gitignore_global
・・・(省略)

このようにgitignore_globalファイルは適用されているようです。

恐らく、このホームディレクトリ配下にあるgitconfigファイルは自分のローカルのgitの挙動を決める設定ファイルのような存在だと思います。

実際に使い分ける参考例

ではどうやって、gitignore_globalファイルとgitignoreファイルを使い分けるのか。。。

以下は実際にあった僕の例です。

チームで開発していると、みんな様々なエディタを使用していると思います。

Vim,Atom,eclipse,intellij・・・ 私の場合は「エディタよって強制的に生成されるファイル」をgitignore_globalファイルに記載しています。

私は業務ではintellijを使っています。ただ先輩はAtomを使っています。 intellijではプロジェクトを開いたときに強制的にxmlファイルなどが生成されてしまいます。 このxmlファイルはAtomを使っている先輩には必要のないファイルなのでignoreしたい。。

ただプロジェクトリポジトリのgitignoreファイルに記載してしまうとチームの他の人にはまったく関係のないコードがgitignoreファイルに記載されることになってしまいます。 (チームとしてそれでも良ければ問題ないのですが) そういうときにintellijが強制的に生成するxmlファイルをignoreする設定をgitignore_globalファイルに記載します。

そうすることでプロジェクトリポジトリのgitignoreファイルを汚さずにすみます。

まとめ

gitignore_globalファイルとgitignoreファイルを上手く使い分けることで、開発をより効率よく進めたいですね。

おわり!!