title: How to properly use CI scripts with Git hooks to compress source
body: <p>I have a <code>feature</code> branch and a <code>testing</code> branch (for initial regression).  I would like to have a working copy available for my <code>testing</code> branch for the testing environment.  However, I need to compress some of the source code (not into binary, just optimize) via a script.  I can enact this script via a post-receive Git hook.</p>
  
  <p>I'm trying to design my bash script (for CI) so that it's fairly robust and want to avoid automation causing Git conflicts.  I'm thinking of having a main repository (<code>origin</code>) and a testing environment repository (<code>ci_test</code>) simply to allow CI to commit.</p>
  
  <p>I'm thinking about pushing to <code>ci_test/testing</code> when promoting source.  CI should compress, add, commit, fetch from <code>origin/testing</code>, merge if necessary (taking theirs-full iff conflicts), then push to <code>origin/testing</code>.</p>
  
  <p>The problem to my model above is that Git complains when I attempt to push to <code>ci_test/testing</code> because it has a working copy (makes sense, because they may not be synced).  Is there a proper (automated) way to use Continuous Integration scripts with Git so that they're still tracked?</p>