Gitでファイルを無視する3つの方法

原題: .gitignore Isn't the only way to ignore files in Git

なぜ重要か

Gitの3段階の無視機構を理解することで、リポジトリの共有ルール、個人的な設定、マシン全体の設定を適切に使い分け、より効率的で柔軟なバージョン管理ワークフローを構築できる。

Gitでファイルを無視する方法は.gitignoreだけではなく、3つのレベルで設定可能。.gitignore(リポジトリ共有)、.git/info/exclude(リポジトリ個別)、~/.config/git/ignore(マシン全体)の3つのファイルを使い分けることで、柔軟なファイル管理が実現できる。

Gitでファイルを無視する方法として、一般的に使用されている.gitignoreのほかに、2つの方法がある。

1つ目は.git/info/excludeで、各Gitリポジトリの.gitディレクトリに存在する。このファイルへの変更はGitに登録されず、リポジトリごとの無視設定に適している。例えば、個人的なnotes.txtファイルをリポジトリに含めたくないが、.gitignoreに追加したくない場合に活用できる。

2つ目はホームディレクトリの~/.config/git/ignoreで、マシン全体での無視設定が可能。このファイルもGitに登録されず、複数のリポジトリ間で共通する無視対象ファイルに適している。例えばmacOSの.DS_Storeのように、すべてのリポジトリで無視したいファイルはここに記述する。

グローバル無視ファイルは「git config --global core.excludesFile 」コマンドでカスタマイズ可能。.gitignore_globalなど別の名前に変更することもできる。

どのファイルが特定のファイルを無視しているか確認するには、「git check-ignore -v ファイル名」コマンドが有用。出力結果から無視ルールの出所が明確になり、デバッグに役立つ。例えば「.gitignore:1:.DS_Store」という出力は1行目の.gitignoreで無視されていることを示す。

出典

nelson.cloud — 元記事を読む →