かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Git 除外したディレクトリ内の特定のフォルダをgit管理したい。

.gitignore
/var
 |-/log
     |-.gitkeep

上記のような構成でvarディレクトリ内のファイルはgit管理から除外したいけどlogディレクトリは空フォルダでgit管理下に置きたいような場合

/var/*
!.gitkeep

上記のように単に!.gitkeepとするだけではlogフォルダ自体が除外されてしまい上手くいかない。
除外しないフォルダを除外対象にしない記述が必要になる👇

/var/*
!.gitkeep
!/var/log/
/var/log/*
!/var/log/.gitkeep
  1. !/var/log/でlogフォルダを除外対象から外し、
  2. /var/log/*でlogフォルダ内のファイルを全てgit管理から外し、
  3. !/var/log/.gitkeepでlogフォルダ内の.gitkeepをgit管理下に置くことで/var/log/ディレクトリだけをgit管理に追加することができる。

階層が深くなるとちょっと面倒くさい...


[参考]

入門git

入門git

  • 作者:Travis Swicegood
  • 発売日: 2009/08/12
  • メディア: 単行本(ソフトカバー)