title: Can Git treat ZIP files as directories and files inside the ZIP as blobs?
body: <p><strong>The scenario</strong></p>
  <p>Imagine I am forced to work with some of my files always stored inside <code>.zip</code> files. Some of the files inside the ZIP file are small text files and change often, while others are larger but luckily rather static (e.g. images).</p>
  <p>If I want to place these ZIP files inside a Git repository, each ZIP is treated as a blob, so whenever I commit the repository grows by the size of the ZIP file... even if only one small text file inside changed!</p>
  <p><strong>Why this is realistic</strong></p>
  <p><a href="https://en.wikipedia.org/wiki/History_of_Microsoft_Word#Word_2007" rel="noreferrer">Microsoft Word 2007</a>/<a href="https://en.wikipedia.org/wiki/History_of_Microsoft_Word#Word_2010" rel="noreferrer">2010</a> <code>.docx</code> and Excel <code>.xlsx</code> files are ZIP files...</p>
  <p><strong>What I want</strong></p>
  <p>Is there, by any chance, a way to tell Git to not treat ZIP files as files, but rather as directories and treat their contents as files?</p>
  <p><strong>The advantages</strong></p>
  <ul>
  <li>much smaller repository size, i.e. quicker transfer/backup</li>
  <li><a href="https://stackoverflow.com/questions/4704873/display-changes-with-git-to-zips">Display changes with Git to ZIP files</a> would automagically work</li>
  </ul>
  <p><em>But it couldn't work, you say?</em></p>
  <p>I realize that without extra metadata this would lead to some amount of ambiguity: on a <code>git checkout</code> Git would have to decide whether to create <code>foo.zip/bar.txt</code> as a file in a regular directory or a ZIP file. However, this could be solved through configuration options, I would think.</p>
  <p><strong>Two ideas how it could be done</strong> (if it doesn't exist yet)</p>
  <ul>
  <li>using a library such as <code>minizip</code> or <code>IO::Compress::Zip</code> inside Git</li>
  <li>somehow adding a filesystem layer such that Git actually sees ZIP files as directories to start with</li>
  </ul>