🙆‍♀️

ローカルの git リポジトリで特定のファイルを無視する設定をする

に公開

git で特定のファイルを無視する場合は通常 .gitignore で管理すると思います。
しかし、自分の開発環境に依存するようなファイルをリポジトリ内に .gitignore に追加するのは難しかったり、特定のリポジトリに依存するようなファイルをグローバルな .gitignore に追加するのもためらわれることがあります。
自分の例でいうとリポジトリ内に sandbox みたいなディレクトリをつくってその中に検証用のスクリプトなどを雑につくることが多いんですが、とはいえグローバルな .gitignore に追加するのもな〜、ということで地味に困ってたんですよねー。
あと rubocop が自動で作成する tmp のディレクトリとかね……。
こういうのがあると git status とかでめちゃくちゃノイズになるんですよねえ。

.git/info/exclude を利用する

こういうときにリポジトリ内の .git/info/exclude に無視したいファイル(パス)を追加することで『特定のローカルのリポジトリ内でファイル無視する』ことができます。
tmpsandbox を無視したい場合は以下のように記述することで無視できます。

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
tmp
sandbox

地味に困っていたのでこれは便利。

GitHubで編集を提案

Discussion