0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gitでファイルを無視する方法の選択肢と使い所について

Last updated at Posted at 2024-07-06

Gitでファイルやディレクトリを無視する方法には、いくつかの選択肢があります。それぞれの方法の違いと使い所についてまとめたいと思います。

目次

まとめ

~/.config/git/ignore .gitignore .git/info/exclude
適用範囲 グローバル (すべてのリポジトリに適用) リポジトリごとに適用 リポジトリごとに適用
ファイルの場所 ユーザーのホームディレクトリ リポジトリのルートディレクトリ リポジトリの.gitディレクトリ内
影響範囲 ユーザーの環境のみ チーム全体(リポジトリを共有する全員) ユーザーの環境のみ
コミット コミットされない コミットされる コミットされない
使い所 個人的な環境設定ファイルやメタデータ プロジェクト全体の無視したいもの 一時的または個人的なもの
具体例 .DS_Store, エディタの設定ファイル node_modules, .env, distフォルダ デバッグ用の一時ファイル

~/.config/git/ignoreを利用する場合

  • 特徴
    • ユーザーのホームディレクトリに存在し、グローバルな設定として全てのリポジトリに適用されます。
    • ユーザーごとの設定なので、他の開発者には影響しません。
  • 使い所
    • 個人的な開発環境に依存するファイルを無視したい場合
      • 例: 自分が利用しているエディタの設定ファイルなど
    • 全てのリポジトリで共通して無視したいファイルがある場合
      • 例: DS_Storeのようなメタデータファイル

自分は~/.gitignore_globalで同様の設定をしていたのですが、~/.config/git/ignoreがデフォルトのようです。
https://zenn.dev/qnighy/articles/1a756f2857dc20

~/.gitignore_globalで無視していたものを~/.config/git/ignoreで管理し直す場合は、既存のcore.excludesfileの設定を削除する必要があります。

# 現在の設定を確認
git config --global --get core.excludesfile
# .gitignore_globalの場所が表示される

# 現在の設定を削除
git config --global --unset core.excludesfile

# 設定が削除されたことを確認
git config --global --get core.excludesfile
# 何も表示されなければ削除成功

これで~/.config/git/ignoreの内容が反映されるようになります。

.gitignoreを利用する場合

  • 特徴
    • リポジトリごとに存在し、プロジェクトのルートディレクトリに配置されます。
    • .gitignore自体はリポジトリにコミットされるため、他の開発者とも共有されます。
  • 使い所
    • プロジェクト全体で無視するファイルやディレクトリを指定したい場合
      • 例: envやnode_modulesやdistファイルなど
    • 無視する内容をチームで共有する必要がある場合

.gitignore自体はGit管理されます。
もし自分のメモ用のファイルを無視する場合、以下のように.gitignoreに追記するとそれが差分として現れてしまいます。

.gitignore
memo.txt
+ memo.txt

このように自分用のファイルを無視する際、
他の開発者に影響は与えたくないが、グローバルな設定にするほどではないという場合は次の方法が使えます。

.git/info/excludeを利用する場合

  • 特徴
    • 各リポジトリの.gitディレクトリの中に存在します。
    • .git/info/excludeはリポジトリにコミットされない他、他の開発者には影響しません。
  • 使い所
    • 特定のリポジトリで一時的に無視したいファイルやディレクトリがある場合
    • ignoreする内容をチームで共有する必要がない場合

この方法であれば他の開発者に影響を与えることなく任意のファイルを無視することができます。

最後に

Gitでファイルを無視する方法はそれぞれ特徴と使い所があります。

個人的にどの方法にするかは以下の基準で考えています。
・プロジェクトに関係するもの → .gitignoreで管理
・個人の環境に関係するのもの → ~/.config/git/ignoreで管理
・そのプロジェクトに関係するもので自分にしか関係のないもの → .git/info/excludeで管理

以上、今回紹介した方法を活用して快適なGit運用に活かしていただけると幸いです。

参考

0
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?