エンジニアはこわくない

自分の好きな音楽とか雑記とかエンジニアっぽい内容を好きなように書く場所。

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ファイルを上手く使い分けることで、開発をより効率よく進めたいですね。

おわり!!

広告を非表示にする