title: Correct Usage of BFG Repo Cleaner
body: <p>The <a href="https://rtyley.github.io/bfg-repo-cleaner/" rel="nofollow noreferrer">BFG Repo Cleaner</a> site gives an example of using the tool as follows to clean up a repository:</p>
  
  <ol>
  <li><p>Clone a fresh copy of your repo. </p>
  
  <pre><code>$ git clone --mirror git://example.com/some-big-repo.git
  </code></pre></li>
  <li><p>Run BFG to clean up your repo.</p>
  
  <pre><code>$ java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git
  </code></pre></li>
  <li><p>Use git gc to strip out the unwanted dirty data</p>
  
  <pre><code>$ cd some-big-repo.git
  $ git reflog expire --expire=now --all &amp;&amp; git gc --prune=now --aggressive
  </code></pre></li>
  <li><p>Push changes back up to the remote</p>
  
  <pre><code>$git push
  </code></pre></li>
  </ol>
  
  <p>I  understand the head branch is protected so any file in the head branch that is larger than 100M will still be there.  If I run this tool as described I will lose any history of said 100M file correct?  So if there is an old version of that file in an old commit it's gone and I will not be able to use it in it's previous state....correct?  </p>
  
  <p>Also, I have a coworker that stated the following and I am wondering if it is true:</p>
  
  <p>If you push back to the repository that was mirrored in TFS the changes to your pack file won't be reflected on the remote and future clones</p>
  
  <p>You have to create a new repository in TFS and push the mirror there for the remote to pick of the pack file changes.</p>