はじめに
開発をしていると「バージョン管理やチームで共有するほどではないが、自分の作業効率のために残したいメモや検証スクリプト」が発生することは多い。
ローカル環境でだけ使う ワンライナーShell や 一時的なログ、個人用の備忘録 などである。
これらをデスクトップやメモ帳に散らすと参照しづらく、コピー&ペーストも増えるため、プロジェクト直下に置いてIDEからすぐ参照できる状態の方が都合が良い。
ただし、このままでは Git の未追跡ファイルとして鬱陶しく表示されたり、誤ってコミットしてしまうリスクがある。
「では .gitignore
に追加すればよいのでは?」と思うかもしれない。鋭い…が、惜しい!
確かに動作はするが、.gitignore
は本来 チーム全体で共有すべきルール を記述する場所であり、個人用ファイルをここに加えるのは望ましくない。
ならば、ローカルリポジトリの単位で .gitignore
と同じような設定ができれば良いのであるのだが……
できる
そこで活用できるのが .git/info/exclude
である。
これはいわば「ローカル専用の .gitignore
」であり、ローカルリポジトリごとに自分だけの無視パターンを定義できる。
例として、私は以下のように設定している。
_*.sh
_*.txt
_myfiles/
この定義では、_docker_login.sh
, _debug.sh
や _myfiles/todo.txt
のようなファイル名は無視される。
まとめ
.git/info/exclude
を使えば、個人用ファイルをリポジトリ直下に置きつつ、チームのルールを汚さない運用が可能になる。
ただし、こうしたファイルの中には将来的にチームで共有した方が有益なものもある。
「ローカルに抱え込む一時ファイル」と「共有すべき資産」を切り分ける意識を持つと、より健全なリポジトリ運用につながる。
今一度、個人的に管理しているファイルやテクニックについて、メンバと話題にしてみると、良いコミュニケーションになったり、先輩からノウハウについてのアドバイスが得られたりするのかもしれない。
良い一日を