Если в .gitignore написать путь к игнорируемой папке как относительный, например:
cache/
вместо (абсолютный от места залегания .gitignore):
/cache/
то может оказаться так, что вообще все папки с таким именем в вашем проекте (вне зависимости от уровня вложенности) будут игнорироваться (помните об этом ;)