Git | “.gitignore”の作成方法

Gitとは,プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである.ソースコードの変更履歴を順々に記録し,いつ,だれが,どのファイルのどの箇所を変更したかが分かり,記録の際に変更箇所についてのメッセージを付与することもできる.必要であれば,変更履歴に基づき,ソースコードを戻すこともできる.
“.gitignore"は,Gitにバージョン管理の対象外にするファイルやフォルダを指定するための設定ファイルである.
本記事では,".gitignore"の作成方法を以下に記す.
実施環境
Windows 11
“.gitignore"の作成方法
Gitについての基本は以下記事に記した.
“.gitignore"は,Gitにバージョン管理の対象外にするファイルやフォルダを指定するための設定ファイルである.この設定ファイルに書かれたファイルやディレクトリは,"git add"をしてもステージングされず,コミットにも含まれずに無視される.
“.gitignore"の主な目的は以下となる.
- セキュリティのため: パスワードやAPIキーなどを含む “.env"ファイルを誤って共有しない
- 不要なファイルをコミットしない: レポジトリが肥大化するのを防ぐため,一時ファイル(キャッシュやログなど)を除外する
- 環境依存ファイルの排除: OSやIDEによって自動生成される設定ファイル (“.DS_Store", “.idea/", “*.swp"など)を除外し,チーム開発時に不要な差分が出るのを防ぐ
現状,以下が今回のプロジェクト構成となっている.管理しやすいように,SDS_devディレクトリ,backendディレクトリ,frontendディレクトリの各々に".gitignore"を作成する.
SDS_dev
├─ backend
└─ frontend
各々の".gitignore"のパスは以下となる.
- SDS_dev/.gitignore
- backend/.gitignore
- frontend/.gitignore
“.gitignore"にファイルやディレクトリを表記する際,"/xxx/" や “xxx/", “*"(アスタリスク) を利用できるのでこれらを以下で説明する.
/xxx/
“/xxx/"とは,ルート直下にあるxxxディレクトリだけを無視する.
“SDS_dev/.gitignore"だけに以下を記載する場合と,"SDS_dev/backend/.gitignore"だけに以下を記載する場合との比較をする.
/staticfiles/
SDS_dev/.gitignoreだけに"/staticfiles/"を記載
- 無視されるのは"SDS_dev/staticfiles/"だけとなる
- “SDS_dev/backend/staticfiles/"や"SDS_dev/frontend/staticfiles/"は無視されない
backend/.gitignoreだけに"/staticfiles/"を記載
- 無視されるのは"SDS_dev/backend/staticfiles/"だけとなる
- “SDS_dev/staticfiles/"や"SDS_dev/frontend/staticfiles/"は無視されない
xxx/
“xxx/"とは,任意の場所にあるxxxディレクトリをすべて無視する.
“.gitignore"に以下を記載する場合,ルートや階層問わずに以下ディレクトリを無視する."SDS_dev/staticfiles/"も"backend/staticfiles/"も"frontend/staticfiles/"もすべて無視する.
staticfiles/
* (アスタリスク)
アスタリスクはワイルドカードとして利用される."log*"の場合,logで始まるすべてのファイルやディレクトリを無視する.同様に “*.sql"の場合,".sql"で終わるすべてのファイルやディレクトリを無視する.
以下の場合,"log.txt", “log1", “logs", “logger_config"など,名前の先頭で"log"で始まればすべて無視する.
log*
! (ビックリマーク)
ビックリマークは否定を意味する.そのため,無視せずに追跡するという意味になる.以下の場合,".env.exmple"ファイルは無視されずに追跡されるという意味になる.
!.env.example
参照
以上