 <ul> <li><p>Doing it the way you describe will not do any harm.</p></li> <li><p>You can move the <code>.git</code> directory into the tree you want to commit instead of moving the tree to the repository.</p></li> <li><p>You can use the <code>--work-tree</code> option or <code>GIT_WORK_TREE</code> environment variable to act as if you did that:</p> <pre><code>git add --work-tree=CurrentProduction -A; git commit ... </code></pre> <p>Note that it is not necessary to specify it for commands after <code>add</code> since <code>add</code> copies content into the index, <code>commit</code> uses the index, and the index is in <code>.git</code>.</p></li> </ul> <p>As a separate issue, note that your procedure will make the <code>develop</code> initial commit a child of the <code>master</code> initial commit. That is probably the right thing for this case; I just want to make sure you're aware it's not symmetric.</p>