gitignore_globalとgitignoreを使い分ける
こんにちは、つじたく(@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ファイルを上手く使い分けることで、開発をより効率よく進めたいですね。
おわり!!