#やりたいこと
Laravel ディレクトリ内で下記の場所に新しいディレクトリ files
を追加したとします。
Laravel
┗ storage
┗ app
┣ local
┃ ┗ files <- new
┗ public
このままでは新しく追加した files
ディレクトリは Git 管理されません。
これを Git 管理できるように設定します。
#空のフォルダを Git 管理する
app/
ディレクトリの中身を見てみると .gitignore
というファイルが入っているかと思います。
Laravel
┗ storage
┗ app
┣ local
┣ public
┗ .gitignore <- !?
ファイル名からも想像できるように、このファイルは「Git で管理しないもの」を設定するためのファイルとなっています。
app/
ディレクトリ内の .gitignore
には下記のような内容が書かれています。
* # app/ ディレクトリ内のすべてのファイルを無視
!public/ # app/public/ ディレクトリは無視しない
!.gitignore # app/.gitignore は無視しない
*
は「すべてのファイルが対象」という意味、!
は「無視しない(Git 管理する)」という意味になりますので、この場合は
app/
ディレクトリ内のすべてのファイルを Git 管理しないが、app/public/
ディレクトリとapp/.gitignore
だけは Git 管理する
という設定になります。
#設定を書き換える
それでは新しく追加した files
ディレクトリを Git 管理するように設定を書き換えます。
まずは app/.gitignore
を下記のように編集します。
*
!public/
!local/ # この行を追記
!.gitignore
これで app/local/
がGit 管理できるようになりそうですが、Git は空のディレクトリを管理してくれません。
Git 管理するためには app/local/
に何かしらのファイルを保存する必要があります。
そこで、app/local/
内にも .gitignore
を保存することで Git 管理できるようにします。
*
!.gitignore
!files/
これで app/local/files/
ディレクトリも Git 管理できるようになりました。
さらにさら、これでは開発工程で app/local/files/
ディレクトリに保存されたテスト用のファイルなども Git 管理されてしまうので、それは無視してもらいましょう。
*
!.gitignore
# 逆に、Git 管理したいファイルがある場合は先頭に ! をつけてファイルを指定します。
files
ディレクトリ内にも上記内容の .gitignore
を設置することで不要なファイルを Git 管理から外すように設定できました。
#まとめ
あちこちに .gitignore
が出てきましたが、最終的には以下のような構造になります。
Laravel
┗ storage
┗ app
┣ local
┃ ┣ files
┃ ┃ ┗ .gitignore
┃ ┗ .gitignore
┣ public
┗ .gitignore
正しく設定されていれば files
ディレクトリも Git 管理できるようになっているかと思います。