TSMH’s blog

多趣味人間のメモ

.gitignoreファイルによる除外方法

gitignoreファイルに
フォルダーやファイルの除外方法や注意点をメモしたいと思いまーす

.gitignoreとは

Git の管理から除外したいフォルダーやファイルを指定するためのファイル

概要

ワークツリーの任意の場所に.gitignoreというテキストファイルを作り、
特定の構文を.gitignoreファイルに書くことで、フォルダーやファイルをGitの追跡対象から除外する事ができる
結果、git add の実行時に、インデックスに追加されないようになる
*他のユーザーとこの無視ルールを共有するには、.gitignore ファイルをリポジトリにコミットしなきゃいけない

使用タイミング

  • ビルドやコンパイル後のファイルを除外
  • キャッシュや一時ファイルを除外
  • ログファイルを除外
    →logs/
  • デバッグ用のファイルを除外
  • 秘密情報を含むファイルを除外
    →.ssh/(SSH 鍵情報)
  • 依存関係を再インストールできるものを除外
    →vendor/(Composer などの依存管理ツール)

他にも色々あるけど、とりあえずよくある例!

設定方法

  1. 除外設定を行いたいフォルダーに .gitignore という名前でテキストファイルを作成する
  2. 除外したいファイルを .gitignore 内で指定する

*設定の有効範囲は .gitignore ファイルの有るフォルダー内全部

実際の操作イメージ

  1. 「ターミナル」を開く
  2. Git リポジトリの場所まで移動する
    コマンド:cd
  3. リポジトリの .gitignore ファイルを作成/編集する
    コマンド:vi .gitignore

パターン

コメント

# "#" で始まる行はコメント

特定のファイルを無視

test.exe

特定のフォルダーの中身全てを無視

logs/

特定の拡張子を無視

*.exe

フォルダー内の特定拡張子を無視

logs/*.csv

フォルダー内全てを無視

*

特定のパターンを無視しない

!test.exe

注意点

初心者がよくやっちゃうことをメモ

例えばプロジェクトのディレクトリ構成はこんな感じ

親フォルダー
|
|---public(フォルダー)
|      |
|      |-----index.php(ファイル)
|
|---compile(フォルダー)
|      |
|      |-----39575b3aa923ae2_0.file_index.tpl(ファイル)
|
|---logs(フォルダー)

「compile」と「logs」を除外したいとする
多分最初に浮かんだのは
親フォルダーの中に1個.gitignore ファイルを作成して

compile/
logs/
」で書いて除外するでしょう

でも!!!

確かに「compile」と「logs」を除外したいが
除外したいのは「その中身」だけなのよ
フォルダーはそのまま存在してほしい

とういうことで、実は下のようなやり方の方が適切

親フォルダー
|
|---public(フォルダー)
|      |
|      |-----index.php(ファイル)
|
|---compile(フォルダー)
|      |
|      |-----.gitignore
|      |
|      |-----39575b3aa923ae2_0.file_index.tpl(ファイル)
|
|---logs(フォルダー)
|      |
|      |-----.gitignore

.gitignoreの中身はこう書き


#まずフォルダー内全てを無視
*
#.gitignoreだけを無視しない
!.gitignore