Gitで空のディレクトリを作成して維持する方法!
この記事ではGitで空のディレクトリを作成して維持する方法を解説しています。通常はGitで空のディレクトリを作成して維持することはできませんが、ある方法を使うと擬似的にそのような操作を行うことができます。
場合に合わせて使い分けたい2つのパターンを紹介します。
Gitでは本来、空のディレクトリをコミットに含めることができません。ディレクトリをコミットするときは、
- ディレクトリを作る
- 中にファイルを入れる
git add
するgit commit
する
では、空のディレクトリをコミットしたい!と思ったときはどのようにすればよいのでしょうか。
Gitで空のディレクトリを作成して維持する方法
結論から言うと、全く空のディレクトリを作成して維持することは残念ながらできません。そのため、ディレクトリの中に意味をなさないファイルを作成して、Gitにディレクトリを認識させる方法を使います。
一般的には、「.gitkeep」か「.gitignore」というファイル名が使われることが多いです。
.gitkeepとは?
空のフォルダの中に「.gitkeep」という名前のファイルを作成するのが一番簡単な方法です。
これは特に何も記述していない意味を持たないファイルですが、これを作成することでディレクトリが空ではなくなり、認識してもらえるようになります。
「.gitkeep」がある空のディレクトリに新規ファイルが追加された時、そのファイルをGitの管理対象に含める場合は、このファイル名を使用します。
では、空のディレクトリに新規ファイルが追加された時、そのファイルをGitで管理対象に含めたくない場合はどうすればよいのでしょうか。
その場合は、次で紹介する「.gitignore」というファイル名を使用します!
.gitignoreとは?
空のディレクトリに新規ファイルが追加された時、そのファイルをGitで管理対象に含めたくない場合には、「.gitkeep」の代わりに「.gitignore」というファイル名を使用します。
このファイルには、無視するファイルの条件などを記述します。それにより、管理対象に含めないファイルを指定することができます!
以下では、その指定方法でよく使われるものを紹介します。
特定の拡張子を指定
拡張子の前に*
をつけるとその拡張子のファイルを無視できます。
*
は、/以外の0文字以上の文字列にマッチするため、ファイルの名前が何であってもその拡張子のファイルを指定することができます。
例:txt ファイルを無視
*.txt
フォルダ名を指定(その中身を無視する)
フォルダ名/
と記述すると、その中身のファイルを無視するように指定できます。
すなわち、.gitignore以下の全サブディレクトリ下にあるこの名前のディレクトリを無視するように設定できるというわけです。
例:「sample」というファイルの中身を無視
sample/
特定のフォルダ内の特定の拡張子を指定
フォルダ名/**/*.拡張子
と記述すると、特定のフォルダ内の特定の拡張子を指定できます。
**
は0個以上のファイル or ディレクトリにマッチするため、そのフォルダの下の階層がどの様になっていたとしても記述した拡張子のファイルを指定できます。
例えばa/**/.txt
と記述した場合は、a/b.txt
やa/b/c.txt
などにマッチします。
例:sampleフォルダの中のtxtファイルを無視
sample/**/*.txt
無視しない条件を指定
逆に、この条件のファイルだけは無視しないでほしい!という場合は、先頭に!
を付けます。
例:.gitignoreを無視しないでほしい
!.gitignore
まとめ
空のディレクトリを作成して維持することは厳密にはできませんが、上記の方法を使用することで擬似的に空のディレクトリを作成できます!
是非試してみてください。