Gitで自分の環境でだけ管理対象外にするいくつかの方法

#git

fuji44

Thumbs.dbや.DS_Storeを.gitignoreに設定するのは忌避されているらしい。 あまりそういったファイルが邪魔になったことが無いので気にしていなかったが、確かにメンテが面倒になるというのはあるのでわからなくもない。

そういった事情など、稀に、ローカルの端末でだけGitの管理から除外したいことがある。 自分なりに考えたが、以下の3つの方法で概ね対処できそう。

  1. ローカル端末の全てのリポジトリで共通で除外したい => ~/.config/git/ignore
  2. 特定のリポジトリでだけ除外したい => .git/info/exclude
  3. 特定のディレクトリ以下のxxxだけを除外したい => 対象ディレクトリに .gitignore を作成して除外したいファイルと.gitignore自身を指定する

Thumbs.dbや.DS_StoreなどのOS固有のファイルは、1で除外するのがよさそう。

個人的には、3の方法が手軽でほとんどのケースは対処できるので、2の使いどころがあまり思い浮かばない。 例えば、特定リポジトリで作業用のファイルを置きたいことが良くあるが、 <repo_root>/.temp ディレクトリを作成して、そこの.gitignoreに * を指定するというのをよくやる。 この方法で、除外したいファイルと.gitignore自身を除外することで特定のファイルのみを除外することも可能なので、割と柔軟に対応できる。

[余談] ~/.gitignore_global を使う慣習はもう古い

以前は、前述のような要件を満たす機能がなかったためにできた慣習らしく、もう使わなくてよい。