Does git gc execute at deterministic intervals?
<p>I've been reading up on git, and I have a very particular question I am struggling to answer.</p>

<p><strong>When</strong> does <code>git gc</code> execute autonomously?</p>

<p>I've been hearing through the grape-vine of various forums that it occurs by default on a push or a fetch/pull - but I cannot find any source that verifies this. Even <a href="https://www.kernel.org/pub/software/scm/git/docs/git-gc.html" rel="noreferrer">the documentation itself</a> only gets this specific (emphasis mine):</p>

<blockquote>
  <p><strong>Some</strong> git commands <strong>may</strong> automatically run git gc; see the --auto flag below for details</p>
</blockquote>

<p>and the <code>--auto</code> flag specifies</p>

<blockquote>
  <p><strong>Some</strong> git commands run git gc --auto after performing operations that could create many loose objects.</p>
</blockquote>

<p>I want to be able to deterministically say:</p>

<p>"Loose tree and blob files will not have been cleaned up by git until one of the following commands is run: <strong>{mystery list here}</strong>. When running one of these commands, if the number of loose objects exceeds the value of <code>gc.auto</code>, git will automatically compress the objects into a packfile".</p>