無料のソースコード管理 (SCM: software configuration management) ソフト Git で、Git のバージョン管理から除外するフォルダ・ファイルを設定できる .gitignore ファイルの記述例を紹介します。
ワイルドカードを表現するグロブによって、管理外に指定するフォルダの特定のサブフォルダだけを除外する例についても紹介します。

※Git-2.49.0 (64 bit) を使用します。
.gitignore ファイルとは
.gitignore ファイルでは、Git がバージョン管理しないファイルを指定します。
`gitignore`ファイルは、Gitが無視すべき意図的に追跡されないファイルを指定します。すでにGitによって追跡されているファイルには影響しません。
Git – gitignore Documentation
ワイルドカード・グロブパターンについて
.gitignore ファイルでは * (ワイルドカード) を用いて、複数の項目を1つの記述で表すグロブが使用できます。
例えば、 *.tmp を指定することで、 tmp 拡張子の全てのファイルを Git 管理からはずすことができます。
グロブ(英: glob)とは主にUnix系環境において、ワイルドカードでファイル名のセットを指定するパターンのことである。例えば、UNIXのコマンド「
グロブ – Wikipediamv *.xlsx 営業実績/
」はカレントディレクトリから営業実績/
ディレクトリへと.xlsx
で終わる全てのファイルを移動する。
.gitignore の設定例
以下は GodotEngine4 のプロジェクトフォルダに作成した .gitignore の例です。
# GodotEngine4 プロジェクトフォルダの .gitignore の例です。改行コードは CRLF を使用しています。
*.TMP
.godot/
build/
output/
tmp/
addons/*
!addons/my/
特定のサブフォルダ以外を管理外に指定する例
最後の2行では、addons フォルダ内の my フォルダ以外を管理外に指定しています。
addons/*
!addons/my/
addons/* は addons/ フォルダ内の全ての項目を管理外に指定します。
例えば、 addons フォルダ内に hoge.txt, piyo フォルダ, my フォルダがあった場合、 addons/* によって、
- addons/hoge.txt
- addons/piyo/
- addons/my/
のフォルダ内の全ての項目が、管理外に指定されます。
Eその後、!addons/my/ では、 ! で否定することで、 addons/my/ フォルダだけを、管理外の項目の中から除きます。
TortoiseGit で addons フォルダを Git 管理に追加する際のダイアログを表示すると、my フォルダの項目以外は、管理外に指定されているのでリストに表示されないことを確認できました。

*.TMP ですべての TMP 拡張子を管理外に指定したので、Git は干渉しません。
※すでに Git 管理に追加してある TMP ファイルは、ローカルのファイルを残して削除しないと、 Git の管理からはずされません。

addons/* で下位の全ての項目を除く部分が重要
addons/* ではなく addons/ フォルダだけを管理外にしてしまうと、addons フォルダだけを管理外にするため、 addons/my/ フォルダは直接は管理外に設定されず、 ! で否定しても管理外の項目に含まれないため除かれません。
上記の特定のフォルダだけを除外する方法は、「[Git] .gitignoreの仕様詳解 #Git – Qiita」を参考にしました。
関連記事
Git で各ファイルのテキスト・バイナリ・改行コードなどの属性を指定できる .gitattributes ファイルの設定については以下の記事を参照してください。
まとめ
今回は、無料のソースコード管理 (SCM: software configuration management) ソフト Git で、Git のバージョン管理から除外するフォルダ・ファイルを設定できる .gitignore ファイルの記述例を紹介しました。
ワイルドカードを表現するグロブによって、管理外に指定するフォルダの特定のサブフォルダだけを除外する例についても紹介しました。
参照サイト Thank You!
記事一覧 → Compota-Soft-Press
コメント