2
1

.gitignoreと.git/info/excludeの違い

Last updated at Posted at 2023-11-29

環境

Git 2.25
Ubuntu 20.4

はじめに

Gitの.gitignoreの配置は、使い方によって、大きく4パターンあります。それぞれの使い方についてまとめてみました。

  • .gitignore
  • .git/info/exclude
  • ~/.gitexclude
  • /etc/gitexclude

.gitignoreと.git/info/excludeの違い

GitHubに上げたくないファイルは、.gitignoreに記述することが多いかと思いますが、.git/info/excludeに記述することもできます。どちらに書いても同じではありますが、基本的には次のような使い分けがされます。

数名でプロジェクトの開発をしており、GitHubに上げないファイルを全員で共通化する場合は、.gitignoreに記述します。.gitignoreに追加が発生したときは、.gitignoreを全員で共有化させます。

GitHubに上げないファイルが、個人的に作成したファイルの場合、つまり、他人と共有する必要がない場合は、.git/info/excludeに記述します。.gitignoreには追加しません。他人と共有する必要がないためです。

.git/info/excludeは自分専用の、.gitignoreのような使い方をします。

個人で開発をする分には、.gitignoreを使っても、.git/info/excludeを使っても同じですが、.gitignoreを使うことが多いようです。

参考情報
https://zenn.dev/wtkn25/articles/git-exclude-file

.gitignoreを、--global、--systemで設定する

.gitignoreも、.git/info/excludeも、プロジェクトファイルの配下におくため、そのプロジェクトにおいてのみ有効になります。

今後、携わる全プロジェクトにおいて、共通して、GitHubに上げないファイルがある場合、毎回、.gitignore(.git/info/exclude)に記述すると煩わしくなることがあります。

そのようなときに活用するのが、~/.gitexcludeです。

このファイルはGitをインストールするとデフォルトで作成されるファイルではないため、touchコマンドで自作する必要があります。ファイルを作成したら、つぎのコマンドを実行して有効にします。

$git config --global core.excludesfile $HOME/.gitexclude

このコマンドを実行すれば、~/.gitconfigにつぎのように書き込まれます。

~/.gitconfig
[core]
        excludesfile = /home/xxxx/.gitexclude

設定を取り消したい場合は、つぎのコマンドを実行します。~/.gitconfigから行が削除されます。

$git config --global --unset core.excludesfile

~/.gitexcludeに記述すると、全プロジェクトに対して有効になりますが、OSにログインしているユーザーにしか反映させません。どのユーザーでログインしても、共通で反映させたい場合は、/etc/gitexcludeに記述します(隠しファイルではないことに注意です)。
gitconfigファイルに書き込むコマンドはつぎのコマンドになります。gitconfigファイルの場所は、/etcです。~の配下ではないことに注意です。

git config --system core.excludesfile /etc/gitexclude
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1