Gitの.gitignoreと.gitattributesの使い分けと設定方法

Gitでプロジェクトを管理する際に重要な2つの設定ファイル、.gitignoreと.gitattributesの役割と使い分けについて解説します。 それぞれのファイルの目的と適切な設定方法を理解することで、より効率的なバージョン管理が可能になります。

1. .gitignoreと.gitattributesの役割の違い

Gitには、ファイルの扱いを制御する2つの重要な設定ファイルがあります:

.gitignoreの役割

  • バージョン管理から除外するファイルやディレクトリを指定
  • 環境固有のファイルや一時ファイルを除外
  • 機密情報を含むファイルを保護
  • ビルド成果物やキャッシュファイルを除外

.gitattributesの役割

  • 改行コードの自動変換設定
  • ファイルタイプごとの属性設定
  • マージ戦略の指定
  • テキスト/バイナリファイルの区別

2. .gitignoreの設定例

# 仮想環境 venv/ env/ .venv/ .env/ ENV/ # Python __pycache__/ *.py[cod] *$py.class *.so .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg # IDE .idea/ .vscode/ *.swp *.swo

3. .gitattributesの設定例

# デフォルトの設定 * text=auto # テキストファイル(LFを使用) *.py text eol=lf *.html text eol=lf *.css text eol=lf *.js text eol=lf *.json text eol=lf *.md text eol=lf *.txt text eol=lf *.yml text eol=lf *.yaml text eol=lf *.xml text eol=lf *.sql text eol=lf *.sh text eol=lf # Windowsバッチファイル(CRLFを使用) *.bat text eol=crlf *.cmd text eol=crlf # バイナリファイル(改行コードの変換を無効化) *.png binary *.jpg binary *.jpeg binary *.gif binary *.ico binary *.pdf binary *.zip binary *.tar binary *.gz binary *.rar binary *.7z binary *.exe binary *.dll binary *.so binary *.dylib binary *.class binary *.jar binary *.war binary *.ear binary *.swf binary *.flv binary *.mov binary *.mp4 binary *.mp3 binary *.wav binary *.ogg binary *.woff binary *.woff2 binary *.ttf binary *.eot binary *.otf binary *.svg binary *.psd binary *.ai binary *.eps binary *.doc binary *.docx binary *.xls binary *.xlsx binary *.ppt binary *.pptx binary *.odt binary *.ods binary *.odp binary *.db binary *.sqlite binary *.sqlite3 binary *.db-journal binary *.sublime-workspace binary *.sublime-project binary *.DS_Store binary *.pem binary *.key binary *.crt binary *.cer binary *.p12 binary *.pfx binary

4. 設定のポイント

.gitignoreの設定ポイント

  • プロジェクト固有の一時ファイルやキャッシュを除外
  • 環境固有の設定ファイルを除外
  • ビルド成果物や依存関係のディレクトリを除外
  • 機密情報を含む可能性のあるファイルを除外

.gitattributesの設定ポイント

  • クロスプラットフォーム開発での改行コードの一貫性を保つ
  • ファイルタイプごとに適切な改行コードを設定
  • バイナリファイルの改行コード変換を無効化
  • Windows固有のファイルはCRLFを使用

5. ベストプラクティス

  1. プロジェクト開始時に両方のファイルを設定する
  2. チーム内で設定を統一する
  3. 定期的に設定を見直し、必要に応じて調整する
  4. 新しいファイルタイプが追加されたら、適切な設定を追加する

参考文献